redis哨兵模式

redis高可用

  redis的高可用模式一般有三种,主从复制,哨兵模式,集群模式。

redis哨兵机制

  原理简单来说就是:通过一个哨兵集群去监控redis服务器集群,从而在集群中的主服务器挂掉之后,能第一时间选择一个从机升级为主机顶上去。
  哨兵模式是一种特殊的模式,Redis提供了哨兵命令,哨兵是一个独立的进程。
  其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控多个运行的Redis实例。

Redis哨兵

这里哨兵发挥两个作用:

  1. 通过发送命令,让Redis服务器返回其运行状态,包括主服务器和从服务器。
  2. 当哨兵检测到主机宕机时,会自动将从机切换成主机,然后通过发布订阅模式,通知其他从机,通知它们修改配置,切换主机。

  当单个哨兵监控集群时,可能会出现问题,可以使用多个哨兵进行监控,哨兵之间还可以相互监控,就形成了多哨兵模式。

多哨兵监控集群

  故障切换过程,假设主服务器宕机,哨兵1检测到这个结果,系统并不会马山进行failover过程,仅仅时哨兵1主观的认为主服务不可用,这个现象称为主观下线。当后面的哨兵也检测到主服务不可用时,并且数量达到一定值(n/2+1,就是一半加1)的时候,哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作,切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。这样对于客户端而言,一切都是透明的。

参考文献 & 鸣谢