Sentinel是Redis的高可用性解决方案:
由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求
示例
server1 为主,server2 server3 server4为从,复制server1,Sentinel监控每台服务器
假设这时,主服务器server1进入下线状态,那么server2、server3、server4的复制操作将被中止,并且Sentinel系统会察觉到server1已下线
当server1的下线时长超过设定的下线时长上限时,Sentinel系统就会对server1执行故障转移操作:
(1)Sentinel系统会挑选server1属下的其中一个从服务器,并将这个被选中的从服务器升级为新的主服务器
(2)Sentinel系统会向server1属下的所有从服务器发送新的复制指令,让它们成为新的主服务器的从服务器,当所有从服务器都开始复制新的主服务器时,故障转移操作执行完毕
(3)Sentinel继续监视已下线的server1,并在它重新上线时,将它设置为新的主服务器的从服务器