主从配置
docker 中redis服务启动,将配置文件和数据挂载到 redisData中,记得先创建好redis.conf
docker run -p 6379:6379 \--name redis \-v /root/redisData/data:/data \-v /root/redisData/conf/redis.conf:/etc/redis/redis.conf \-d redis redis-server /etc/redis/redis.conf
从节点使用了6380端口,参照上面自行修改
进入从节点的配置文件修改
# 开启密码验证(可选)
#requirepass 123456# 允许redis外地连接,需要注释掉绑定的IP
# bind 127.0.0.1#端口
port 6380# 关闭保护模式(可选)
protected-mode no# 注释掉daemonize yes,或者配置成 daemonize no。因为该配置和 docker run中的 -d 参数冲突,会导致容器一直启动失败
daemonize no# 开启RDB
# save ""
save 3600 1
save 300 100
save 60 10000# 这里选择开启了AOF,可以关闭
appendonly yes# 这些设置将在 AOF 文件大小增长到一定百分比(auto-aof-rewrite-percentage)和最小大小(auto-aof-rewrite-min-size)时触发 AOF 重写。
#auto-aof-rewrite-percentage 100
#auto-aof-rewrite-min-size 16mb#开启主从
slaveof 192.168.200.100 6379
进入redis容器
docker exec -it redis redis-cli -p 6380
展示redis信息
info replication
哨兵配置
创建挂载文件夹,我挂载在/root/redisData/sentinel下,在目录中创建sentinel.conf
port 26379
daemonize no
sentinel monitor mymaster 192.168.200.100 6379 1
sentinel auth-pass mymaster ""
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 60000
在启动后会自动写入一些配置,这里无密码时会出错,启动后手动将密码配置一项补全,下面为启动之后补完的代码
port 26379
daemonize no
sentinel myid f5d5274ad22e1894a5fd845e50201ae47a5eeca8
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.200.100 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
# Generated by CONFIG REWRITE
dir "/data"
sentinel auth-pass mymaster ""
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-replica mymaster 172.17.0.1 6380
sentinel current-epoch 0
启动哨兵服务
docker run -p 26381:26379 --name redis-sentinel1 -v /root/redisData/sentinel/sentinel.conf:/etc/redis/sentinel.conf -d redis redis-sentinel /etc/redis/sentinel.conf
docker run -p 26382:26379 --name redis-sentinel2 -v /root/redisData/sentinel/sentinel.conf:/etc/redis/sentinel.conf -d redis redis-sentinel /etc/redis/sentinel.conf
进入哨兵容器
docker exec -it redis-sentinel1 redis-cli -p 26379
查看哨兵信息
info sentinel