背景:
我们项目上的redis除了几个核心业务的集群部署是用二进制部署的,其他环境基本都是容器部署。所以整理了一下redis容器相关的配置。
docker-compose部署的配置
version: '3' services: redis: image: redis:6.2.5 container_name: redis restart: always ports: - "6379:6379" volumes: - /data:/data environment: - REDIS_PASSWORD=redis_password command: redis-server --requirepass ${REDIS_PASSWORD} --appendonly yes
启动命令:
docker-compose up -d
redis的核心配置文件相关解释:
# 绑定的IP地址,可以指定多个,多个地址之间用空格分隔 bind 127.0.0.1 # Redis 监听的端口号,默认为6379 port 6379 # 客户端连接 Redis 时的密码,为空表示不需要密码验证 requirepass foobared # 数据库的数量,默认为16个 databases 16 # 数据存储方式,默认为快照方式。可以设置为 AOF(Append Only File)方式。 # 快照方式:把当前所有数据全部写入磁盘中的 .rdb 文件中。 # AOF方式:每次操作写一条日志到磁盘中的 .aof 文件,重启时从日志中恢复数据。 # 如果两种方式都开启,则以 AOF 为准进行数据恢复。 # 总结:AOF 的可靠性更高,但对性能影响也更大。 # 快照的周期性保存,可以通过 save 选项来设置。如:save 900 1 表示900秒内,如果有至少1个 key 发生变化,则保存一次快照。 # 不推荐使用 bgsave,它会 fork 出一个子进程来执行快照操作,占用大量内存,会导致 Redis 服务长时间无响应。 # 推荐使用 save 命令,在持续稳定的 Redis 环境下,save 命令可以很好的完成快照操作。 save 900 1 save 300 10 save 60 10000 # AOF 方式下,同步的条件,表示执行每次写操作时,需要 fsync 到磁盘的条件: # no:操作系统自动判断执行 fsync 的时机。 # always:每次写操作都立即执行 fsync。 # everysec:每秒执行一次 fsync。 appendfsync everysec # 是否开启 AOF 功能,默认为 no appendonly no # AOF 文件的路径和文件名,默认为当前工作目录下的 appendonly.aof 文件 appendfilename "appendonly.aof" # 重写 AOF 文件的条件,即执行 BGREWRITEAOF 命令的条件: # 当 AOF 文件大小超过上次重写时的大小的一倍,并且文件大小超过64MB时执行。 # 也可以通过执行 BGREWRITEAOF 命令手动执行重写。 auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb # 开启集群模式,默认为 no。可以在配置文件中指定端口号和集群中的其他节点的 IP 和端口号。 # 可以通过 redis-trib.rb 工具来管理集群。集群模式的配置比较复杂,请参考官方文档。 cluster-enabled no # cluster-config-file nodes-6379.conf # cluster-node-timeout
在宿主机上如何操作容器中的redis呢?
#先登登陆容器中 docker exec -it redis_docker_name /bin/sh #然后执行 redis-cli -h localhost -p 6379 -a redis_password
如果该文章对各位有帮助,也希望大家能予以关注分享,以便让波哥出更多更好的作品回馈大家。谢谢各位!~