sentinel(哨兵,哨岗),是Redis的高可用性解决方案,由一个或多个sentinel组成sentinel系统可监视多个主服务器,以及这些主服务器下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线的主服务器下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器升级为新的主服务器
1.启动命令
redis-server /etc/sentinel.conf --sentinel
2.sentinel启动步骤
sentinel启动时,会执行一下几个步骤1.初始化服务器
sentinel本质上是一个特殊的模式下的redis服务器,所以启动的第一步就是初始话一个redis服务器,但是sentinel启动时不会载入RDB文件或者AOF文件。
sentinel在初始化阶段会:
- 载入自己专有的配置文件和命令列表,
- 初始化master字典
- 创建连向主服务器的连接(命令链接和订阅连接)
2.获取服务器列表
sentinel会以每十秒一次的频率,向被监视的主服务器和其从服务器发送info命令,向主服务器和从服务器发送信息,并接受来自主服务器和从服务器的信息。sentinel会使用这些信息来更新自己的sentinels字典
3.创建链接其他sentinel的命令连接
如果sentinel通过频道信息发现其他的sentinel,也会创建连向新的sentinel的命令连接(不创建频道连接)
3.转移故障
当sentinel检查到被监视的主服务器下线后,会向其他sentinel(如果有的话)发送确认命令,当得到一定数量的确认后,sentinel就会将主服务器下线,对主服务器进行故障转移操作,包括选取新的主服务器,为旧主服务器的从服务器设置新的主服务器,也为旧服务器设置新的主服务器。当旧的主服务器上线后,将其降级为从服务器
详细信息参考:http://redisbook.com/index.html