redis主从复制(在虚拟机centos的docker下)-CSDN博客
cd /etc
mkdir redis-sentinel
cd redis-sentinel/
wget http://download.redis.io/redis-stable/sentinel.conf
cp sentinel.conf sentinel1.conf
# 修改哨兵的监听端口
port 26379
# 让sentinel服务后台运行(docker的话需要设置为no,非docker运行设置为yes, 因为docker有个-d属性就是让在后台运行的)
daemonize no
# 当Redis哨兵以守护进程的方式运行的时候,默认会把pid文件放在/var/tmp/sentinel1.log,也可以配置到其他地址,多个哨兵需要重命名文件。
pidfile /var/run/redis-sentinel2.pid
# 修改日志文件的路径
logfile "/var/tmp/sentinel.log"
# 哨兵sentinel监控的redis主节点的
## ip:主机ip地址
## port:哨兵端口号
## master-name:可以自己命名的主节点名字(只能由字母A-z、数字0-9 、这三个字符".-_"组成。)
## quorum:当这些quorum个数sentinel哨兵认为master主节点失联,那么这时客观上认为主节点失联了,就进行failover(故障转移)
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 192.168.2.77 6379 2
# 当在Redis实例中开启了requirepass <foobared>,所有连接Redis实例的客户端都要提供密码。
sentinel auth-pass mymaster 123456
#超过5秒master还没有连接上,则认为master已经停止
sentinel down-after-milliseconds mymaster 5000
# 注释掉以下参数,当前redis版本6.2.1,开启参数启动哨兵启报错
# >>> 'SENTINEL master-reboot-down-after-period mymaster 0'
# Unrecognized sentinel configuration statement
# SENTINEL master-reboot-down-after-period mymaster 0
注:sentinel2.conf?sentinel3.conf 与?sentinel1.conf 类似
docker run -p 26379:26379 --name sentinel1 -v /etc/redis-sentinel:/usr/local/etc/redis -v /var/tmp/sentinel1.log:/var/tmp/sentinel.log -d redis redis-sentinel /usr/local/etc/redis/sentinel1.conf
docker run -p 26380:26380 --name sentinel2 -v /etc/redis-sentinel:/usr/local/etc/redis -v /var/tmp/sentinel2.log:/var/tmp/sentinel.log -d redis redis-sentinel /usr/local/etc/redis/sentinel2.conf
docker run -p 26381:26381 --name sentinel3 -v /etc/redis-sentinel:/usr/local/etc/redis -v /var/tmp/sentinel3.log:/var/tmp/sentinel.log -d redis redis-sentinel /usr/local/etc/redis/sentinel3.conf
docker ps
docker exec -it sentinel3 /bin/bash
redis-cli -p 26381
info sentinel
关闭:docker stop redis-6379
需要过会 再次查看 发现地址变了:
#超过5秒master还没有连接上,则认为master已经停止
sentinel down-after-milliseconds mymaster 5000
查看:info sentinel?