什么是Redis sentinel:
1.sentinel只是一个运行在特殊模式下的redis服务器,它使用了和普通模式不同的命令表,所以sentinel模式能够使用命令和普通redis服务器能够使用的命令不同
2.sentinel会读入用户指定的配置文件,为每个要被监视的服务器创建相应的实例结构,并创建连向主服务器的命令连接和订阅连接。
3.在一般情况下,sentinel以每十秒一个的频率向被监视的主服务器和从服务器发送INFO命令,当主服务器处于下线状态,或者sentinel正在对主服务器做故障转移时,sentinel向从服务器发送Info命令的频率会改为每秒一次
4.对于监视同一主服务器和从服务器的多个sentinel来说,他们会以每两秒一次的方式通过向被监视的服务器的_sentinel_:hello频道发送消息来向其他sentinel宣告自己的存在
5.每个sentinel也会从_sentinel_:hello频道接收其他sentinel发来的消息,并根据这些信息为其他的sentinel创建实例结构,以及连接命令
6.sentinel会与主服务器创建命令连接和订阅连接,sentinel和sentinel之间只能通过命令连接
7…sentinel以每秒一次的频率向实例(包括主服务器,从服务器,其他sentinel)发送ping命令,并根据实例对ping的命令回复来判断实例是否在线当一个实例在指定时长中连接向sentinel发送无效回复的时候,sentinel会将这个实例判断为主观下线
8…当sentinel将主服务器判断为主观下线的时候,他会想同样监视这台主服务器的sentinel询问,看它是否支持主服务器的下线。
9.当sentinel搜集到足够多的主观下线投票时,他会将主服务器下线,并发起一次主服务器的故障转移
————————————————————————————————
redis向主redis服务器创建通信的主要步骤如下:
1.初始化setinel状态的master属性
2.创建连向主服务器的网络连接
3.获取主服务信息
4.获取从服务信息
5.向主服务器和从服务器发送消息
6.接收来自主服务器和从服务器的频道消息
7.更新sentinels字典
8.创建连向其他sentinel的连接
9.检查客观下线状态
10.选取领头sentinel
11.故障转移:
a. 选出新的主服务器
b 修改从服务器的复制目标
c. 将旧的主服务器变为从服务器
————————————————————————————————
————————————————————————————————
***外面世界那么美 不想囚禁你的美 ***