docker-composer 搭建不同模式的redis服务(主从复制、哨兵、Cluster)
受限于redis单点性能,配置主从复制的服务
主从复制模式
配置
master
1
2
3
4
5
6
7# bind 127.0.0.1
port 6379
daemonize no
protected-mode no
repl-diskless-sync no
repl-disable-tcp-nodelay no
requirepass masterslave
1
2
3
4
5
6
7
8
9# bind 127.0.0.1
port 6379
daemonize no
protected-mode no
masterauth master
requirepass slave
replicaof 172.25.0.100 6379
replica-read-only yes
replica-serve-stale-data yes
配置参数说明
bind
绑定的主机地址prot
监听端口daemonize
启用守护进程protected-mode
保护模式masterauth
当 master 服务设置了密码保护时,slave 服务连接 master 的密码requirepass
设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH repl-diskless-sync
RDB 文件有以下两种传输方式(是否写入磁盘)repl-disable-tcp-nodelay
是否设置主从之间tcp链接为nodelay.replicaof
设置当本机为 slave 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动从 master 进行数据同步replica-read-only
是否只读replica-serve-stale-data
当和master失连或者在运行时 replica 是否提供过期数据
目录结构
1 | redis |
docker-composer.yml
1 | version: "3" |
Sentinel哨兵模式
Cluster模式
redis.conf文件中的daemonize参数为yes导致,修改
/etc/redis.conf 中的daemonize 为no 重启redis问题
解决docker 本身就是后台运行的,daemonize为yes两者会冲突
参考
https://juejin.cn/post/6997804248457019399
https://developer.aliyun.com/article/641767
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ThinkBIM!
评论