前提条件:配置好主从复制 :https://blog.csdn.net/qq_34707456/article/details/102366048
1.这里有三台服务器,1主2从,选择在一台从服务器中开启哨兵。
修改sentinel.conf配置文件,具体如下:
# Example sentinel.conf
port 26379
dir /tmp #哨兵sentinel的工作目录
daemonize yes #后台启动
sentinel monitor mymaster 39.108.107.163 6379 1 #主服务器ip ,端口, 选举次数
sentinel auth-pass mymaster 123456 #主服务器密码
sentinel down-after-milliseconds mymaster 30000 #指定多少毫秒之后 主节点没有应答
#哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒
sentinel parallel-syncs mymaster 2
# 这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,
#这个数字越小,完成failover所需的时间就越长,
#但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。
#可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。
sentinel failover-timeout mymaster 180000
# 故障转移的超时时间 failover-timeout 可以用在以下这些方面:
#1. 同一个sentinel对同一个master两次failover之间的间隔时间。
#2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。
#3.当想要取消一个正在进行的failover所需要的时间。
#4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了
# 默认三分钟
启动好3台redis服务器后,在启动哨兵:
./redis-sentinel /usr/local/redis/etc/sentinel.conf #后台启动,后面的为sentinel.conf文件路径
测试时,关闭主服务器,等待3分钟(设置的故障转移超时时间)就有可以看到主服务器发生切换。