运行时修改master-slave
修改一台slave为master
- 命令该服务不做其他redis服务的slave
命令:replicaof(slave) no one
2) 修改readonly为yes
其他的slave再指向new master A
1)命令该服务为new master A的slave
replicaof(slave) ip port
port,daemonize,logfile和dir
port表示Sentinel节点的端口;
daemonize表示守护进程,开启则Sentinel将在后台运行;
logfile表示Sentinel节点的日志路径;
dir表示Sentinel节点的工作目录;
sentinel monitor mymaster
sentinel monitor <master-name> <ip> <port> <quorum>
1
Sentinel节点会定期监控主节点,所以从配置上必然也会有所体现,本
配置说明Sentinel节点要监控的是一个名字叫做,ip地址和端
口为的主节点。代表要判定主节点最终不可达所需要的票数。一
般建议将其设置为Sentinel节点的一半加1。
同时还与Sentinel节点的领导者选举有关,至少要有max(quorum,num(sentinels)/2+1)个Sentinel节点参与选举,才能选出领导者Sentinel,从而完成故障转移。例如有5个Sentinel节点,quorum=4,那么至少要有max(quorum,num(sentinels)/2+1)=4个在线Sentinel节点才可以进行领导者选举
如:
sentinel monitor mymaster 127.0.0.1 6379 2
1
sentinel down-after-milliseconds
sentinel down-after-milliseconds <master-name> <times>
1
每个Sentinel节点都要通过定期发送ping命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过了down-after-milliseconds配置的时间且没有有效的回复,则判定节点不可达,(单位为毫秒)就是超时时间。这个配置是对节点失败判定的重要依据。
sentinel parallel-syncs
sentinel parallel-syncs <master-name> <nums>
1
当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作,parallel-syncs就是用来限制在一次故障转移之后,每次向新的主节点发起复制操作的从节点个数。如果这个参数配置的比较大,那么多个从节点会向新的主节点同时发起复制操作,尽管复制操作通常不会阻塞主节点,但是同时向主节点发起复制,必然会对主节点所在的机器造成一定的网络和磁盘IO开销。
sentinel failover-timeout
sentinel failover-timeout <master-name> <times>
1
failover-timeout通常被解释成故障转移超时时间,但实际上它作用于故
障转移的各个阶段:
a)选出合适从节点。
b)晋升选出的从节点为主节点。
c)命令其余从节点复制新的主节点。
d)等待原主节点恢复后命令它去复制新的主节点。
sentinel auth-pass
sentinel auth-pass <master-name> <password>
1
如果Sentinel监控的主节点配置了密码,sentinel auth-pass配置通过添加
主节点的密码,防止Sentinel节点对主节点无法监控。
sentinel notification-script
sentinel notification-script <master-name> <script-path>
1
sentinel notification-script的作用是在故障转移期间,当一些警告级别的Sentinel事件发生(指重要事件,例如-sdown:客观下线、-odown:主观下线)时,会触发对应路径的脚本,并向脚本发送相应的事件参数。
sentinel client-reconfig-script
sentinel client-reconfig-script <master-name> <script-path>
1
sentinel client-reconfig-script的作用是在故障转移结束后,会触发对应路
径的脚本,并向脚本发送故障转移结果的相关参数。
Sentinel的特点
Redis Sentinel具有以下几个功能:
·监控:Sentinel节点会定期检测Redis数据节点、其余Sentinel节点是否
可达。
·通知:Sentinel节点会将故障转移的结果通知给应用方。
·主节点故障转移:实现从节点晋升为主节点并维护后续正确的主从关
系。
·配置提供者:在Redis Sentinel结构中,客户端在初始化的时候连接的
是Sentinel节点集合,从中获取主节点信息
Redis Sentinel的优势:
·对于节点的故障判断是由多个Sentinel节点共同完成,这样可以有效地
防止误判。
·Sentinel节点集合是由若干个Sentinel节点组成的,这样即使个别Sentinel
节点不可用,整个Sentinel节点集合依然是健壮的。