【划重点】Redis哨兵(Sentinel)模式原理
-
Sential本质:Sential是一个运行在特殊模式下的Redis服务器。
-
命令区别:Sential使用了和普通模式不同的命令表,所以Sential模式和普通Redis服务器能够使用的命令不同。
-
监视主服务器:启动Sential时,Sential会读入用户指定的配置文件,为每个要被监控的主服务器创建相应的实例结构,并创建连向主服务器的
命令连接
和订阅连接
。其中命令连接
用于向主服务器发送命令请求,订阅连接
用于接收指定频道的信息。 -
自动发现从服务器:Sential与主服务器建立连接后,会通过向主服务器发送INFO命令来获得主服务器属下所有从服务器的地址信息,并为这些从服务器创建相应的实例结构,以及连向从服务器的
命令连接
和订阅连接
。 -
动态监视:运行中,Sential以每十秒一次的频率向主服务器和从服务器发送INFO命令,当主服务器下线时,或者Sential正在对主服务器执行故障转移操作时,Sential发送INFO命令的频率改为每秒一次。
-
多个Sential间通讯:对于监视同一个主服务器和从服务器的多个Sential来说,它们会以每秒一次的频率,通过向被监视服务器的
__sentinel__:hello
频道发送信息来向其他Sential宣告自己的存在。每个Sential会从<