Redis 高可用性解决方案(Sentinel)

时间:2021-09-30 14:31:27

Sentinel是Redis的高可用性解决方案:

由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求

示例

server1 为主,server2 server3 server4为从,复制server1,Sentinel监控每台服务器

Redis 高可用性解决方案(Sentinel)

假设这时,主服务器server1进入下线状态,那么server2、server3、server4的复制操作将被中止,并且Sentinel系统会察觉到server1已下线

Redis 高可用性解决方案(Sentinel)

当server1的下线时长超过设定的下线时长上限时,Sentinel系统就会对server1执行故障转移操作:

(1)Sentinel系统会挑选server1属下的其中一个从服务器,并将这个被选中的从服务器升级为新的主服务器

(2)Sentinel系统会向server1属下的所有从服务器发送新的复制指令,让它们成为新的主服务器的从服务器,当所有从服务器都开始复制新的主服务器时,故障转移操作执行完毕

(3)Sentinel继续监视已下线的server1,并在它重新上线时,将它设置为新的主服务器的从服务器

Redis 高可用性解决方案(Sentinel)

Redis 高可用性解决方案(Sentinel)