当前位置: 首页 > news >正文

使用Docker启动的Redis容器使用的配置文件路径等问题以及Python使用clickhouse_driver操作clickhouse数据库

一、使用Docker启动的Redis容器使用的配置文件路径等问题

1.docker启动的redis使用的配置文件路径是什么

        使用docker搭建redis服务,本身redis启动的时候可以指定配置文件的, redis-server /指定配置文件路径/redis.conf。 但手上也没有一个redis配置文件。

        在使用非docker安装时,redis的安装包里到是有redis.conf默认文件,但使用docker安装时,不好直接找到啊。没法使用redis本身自带的redis.conf。于是直接启动一个redis服务(不指定配置文件)

docker run -itd \
--name redis7 \
--privileged=true \
--restart=always \
-p 6379:6379 \
-v /opt/redis/data:/data \
-v /opt/redis7/conf/redis.conf:/etc/redis/redis.conf \
redis:latest redis-server /etc/redis/redis.conf --appendonly yes

        启动之后,使用info server查看,config_file为空,没有使用任何配置文件。

executable:/data/redis-server
config_file:

        所以整理一个精简的redis配置文件放在这里吧。docker搭建redis7.2时可使用的精简redis.conf配置文件

[#root] cat /opt/redis7/conf/redis.conf
port 6379
daemonize no
databases 1
tcp-backlog 128
tcp-keepalive 300
logfile "/data/redis.log"
syslog-enabled yes
crash-log-enabled yes
timeout 0
maxmemory 4gb
maxmemory-policy volatile-lru
save 3600 1 300 100 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
# syslog-ident redis
# requirepass foobared
# maxclients 10000

2.Redis启动时警告:Memory overcommit must be enabled

WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

docker exec redis7.2 sysctl vm.overcommit_memory=1

3.docker搭建redis服务时daemonize设置为no

        docker搭建redis服务时daemonize设置为no,为YES的时候redis启动不了。默认值为no 为不守护进程模式,如果是直接在宿主机启动.

4.发现python项目里多了个venv文件夹

        python3.3之后,可以用模块 venv 代替 virtualenv 工具创建、删除虚拟环境。venv就是一个虚拟python环境的文件夹。可以实现多个项目使用不同的python环境。

二、Python使用clickhouse_driver操作clickhouse数据库

    Python要实现使用clickhouse_driver操作clickhouse数据库,首先需要安装clickhouse_driver模块:pip install clickhouse_driver PIP安装的时候有时会遇到报警:

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fd06b379a90>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/clickhouse-driver/。

        如果不是在DOCKER容器中一般可以通过指定PIP源的方法解决,如果是在docker容器中一般要修改docker中的DNS地址,可在本CSDN博客中搜索我的文章内容。

from clickhouse_driver import Client
#可以再加个连接超时时间send_receive_timeout=send_receive_timeout
client = Client(host=host, port=port, user=user, password=password,database=database)
result = client.execute("select * from 数据库.表 limit 10")
print(result)

    连接的时候可能碰到报错:

File "/usr/local/lib/python3.8/site-packages/clickhouse_driver/connection.py", line 437, in receive_hello raise errors.UnexpectedPacketFromServerError(message)
clickhouse_driver.errors.UnexpectedPacketFromServerError: Code: 102. Unexpected packet from server None:None (expected Hello or Exception, got Unknown packet)

        这是因为端口使用错误导致,clickhouse有两个端口,8123和9000。分别用于接收 http协议和tcp协议请求,管理后台登录用的8123(jdbc连接),而程序连接clickhouse(driver连接)则需要使用9000端口。如果在程序中使用8123端口连接就会报错:

clickhouse_driver.errors.UnexpectedPacketFromServerError: Code: 102. Unexpected packet from server None:None (expected Hello or Exception, got Unknown packet)

 

http://www.lryc.cn/news/464126.html

相关文章:

  • 硬盘格式化后能恢复数据吗?4款好用的数据恢复软件,格式化后也能安心
  • 【选择C++游戏开发技术】
  • Oracle数据库系统表空间过大,清理SYSTEM、SYSAUX表空间
  • LaTeX参考文献工具和宏包bibmap项目简介
  • 微软的 Drasi:一种轻量级的事件驱动编程方法
  • vue3 笔记-插槽
  • C# 字符串常用方法
  • 字节跳动青训营——入营考核解答(持续更新中~~~)
  • JavaWeb合集15-Apache POI
  • Threejs 实现3D 地图(01)创建基本场景
  • snmpdelta使用说明
  • Hadoop集群安装
  • VuePress集成到Vue项目的方法
  • 【ROS】ROS局域网下多机通讯方法
  • linux 系统怎么使用
  • Java线程池知识点梳理
  • SFT、RLHF、DPO、IFT —— LLM 微调的进化之路_如何搭建自己的dpo
  • CSS 选择器简单回顾
  • uniapp配置微信小程序分包(分包优化)
  • MySQL-10.DML-添加数据insert
  • ARM/Linux嵌入式面经(四八):tp-link联洲国际
  • 代码实践篇四 形状检测与规则重建
  • JVM(HotSpot):GC之垃圾回收阶段
  • Go 项目如何集成类似mybatisPlus插件呢?GORM走起!!
  • 《深度学习》Dlib库 CNN卷积神经网络 人脸识别
  • 滚雪球学Redis[7.1讲]:Redis实战案例
  • WordPress外部图片本地化插件
  • Linux基础-shell的简单实现
  • Tomcat日志文件详解及catalina.out日志清理方法
  • react 中的hooks中的useState