【Redis】集群-哨兵机制


redis通过哨兵机制来实现故障转移

哨兵的监测机制:
哨兵有多个,并且会每隔一段时间通过ping命令和主服务器建立连接来判断主服务器是否出现故障。当有一个哨兵主观判定主服务器出现故障下线后,该哨兵会请求其他哨兵再进行一次判断,如果超过一定比例的哨兵都主观认定该主服务器下线,则redis客观判定该主服务器下线。

新的主服务器选拔流程:
当旧主服务器被客观判定下线后,哨兵们会选出一个leader,一般由第一个主观判定主服务器下线的哨兵当选。
leader通过以下规则从从服务器中选出新的主服务器:1. 优先级 2.从服务器复制主服务器数据的进程 3.从服务器的id号
选出新的主服务器后,哨兵就要通过slave命令将新的主服务器的ip地址和端口号告知所有从服务器,让从服务器与新的主服务器建立连接。并且还要通过发布者/订阅模式将该地址发布到哨兵的频道上,以便客户端能够重新和新的主服务器建立连接
当旧的主服务器重新上线后,哨兵也要将该主服务器的地址告知它