Sentinel 哨兵模式 
Redis Sentinel 官网 
Redis 的 Sentinel 文档 -- Redis中国用户组(CRUG) 
Sentinel Redis 命令参考(红色) 
 Sentinel 通过监控的方式获取主机的工作状态是否正常,当主机发生故障时, Sentinel 会自动进行 Failover(即故障转移),并将其监控的从机提升主服务器(master),从而保证了系统的高可用性。
哨兵(sentinel)是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。
 哨兵模式是一种自动选择老大的模式,即在老大宕机之后,哨兵模式会根据哨兵们的内部投票,自动的重新选出一个新的老大。
注意:配置sentinel之前需先建立master-slave replication
哨兵的作用 
 ● 监控
           不断的检查master和slave是否正常运行
           master存活检测、master与slave运行情况检测
 ● 通知(提醒)
           当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知
 ● 自动故障转移
           断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服务器地址
注意:哨兵也是一台redis服务器,只是不提供数据服务,通常哨兵配置数量为单数 
哨兵工作原理【其实就是主从同步】
阶段一:监控阶段,用于同步各个节点的状态信息,sentinel会向master、slave以及其他sentinel获取状态,sentinel直接会组件“对应频道”,大家一起发布消息、订阅消息,收消息,同步信息等;
阶段二:通知,保持联通;
阶段三:故障转移,发现问题,竞选负责人,优选新master,新master上任,其他slave切换master,原master座位slave故障回复后连接;
 ● 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。
 ● 当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。
 ● 一般情况下,至少会需要3~5个哨兵对redis 进行监控,我们可以通过修改端口启动多个sentinel 服务。
总结 
 ● 将宕机的master下线                                        ● 谁来确认master宕机了
 ● 找一个slave作为master                                   ● 找一个主?怎么找法?
 ● 通知所有的slave连接新的master                     ● 修改配置后,原始的主恢复了怎么办?
 ● 启动新的master与slave
 ● 全量复制*N+部分复制*N
 第一阶段:监控阶段 
 第二阶段:通知阶段
 1、*
 *
 2*
 *
 3*
 *
 4*
 *
 5*
 *
 6*
 *
 第三阶段
 1、*
 *
 2*
 *
 3*
 *
 4*
 *
 5*
 *
 6*
 *
 7*
 *
 8*
 *
 9*
 *
 10*
 *
 *
 11、*
 *
 12*
 *
 13*
 *
 14*
 *
 15*
 *
 16*
 *
 17*
 18*
 *
 19*
 *
 20*
 *
 21、*
 *
 22*
 *
 23*
 *
 24*
 *
 25*
 *
 26*
 *
 27*
 *
 28*
 *
 29*
 *
 30*
 *
 31、*
 *
 32*
 *
 *
 *



















