Redis的哨兵sentinel)   

    redis的sentinel系统用于管理多个redis服务器实例(instance)。

    

    哨兵适用于非集群结构的redis环境,比如:redis主从环境。

    在redis集群中,节点担当了哨兵的功能,所以redis集群不需要考虑sentinel。

  

sentinel主要功能:    

    1、监控(monitoring)

         sentinel会不断的检查master和slave运行状态是否正常。

    2、提醒(notification)

         当监控发现问题时,sentinel会通过API向管理员发送通知。

    3、自动故障迁移(automatic failover)

         当一个master不能正常工作时,sentinel会进行自动故障迁移操作,

         它会将slave提升为master,并让其他slave改为复制新的master。

         当客户端访问故障的master时,也会向客户端返回新的master地址。

         

主观认为宕机:(初步判断宕机)

    每个哨兵会向其他sentinel、master、slave定时发送消息,确认对方是否存活,

    如果发现对方在指定时间内未响应,则暂时认为对方宕机。(主观认为宕机)

    

客观认为宕机:(确认宕机

    若哨兵群中的多数sentinel都报告某一master未响应,则确认该master宕机。(客观宕机)

    通过vote算法,在其他salve节点中,选举一台提升为master,并自动修改配置。