Redis 哨兵模式

摘要:

Redis的哨兵模式,这几天对哨兵模式也花了不少时间来弄清楚它的原理,其中也参考了其它人的一些理解,自己在一步一步看源码才写出下面自己对哨兵模式的一些理解,方便以后在日常工作中可以更好的使用REDIS的哨兵模式。

Redis哨兵也是单个redis服务实例,只是在启动的时候和处理的命令跟普通redis服务器不同,配置的时候只需要配置需要监控的master服务器配置,因为slaves和其他Sentinel可以通过master通过info来自动发现。

Sentinel也是Redis服务器,只是与普通服务器职责不同,其负责监视Redis服务器,以提高服务器集群的可靠性。Sentinel与普通服务器共用一套框架(网络框架,底层数据结构,订阅与发布机制),但又有其独立的运行代码。

哨兵要干的事情:

通过info和订阅自动发现其他的slaves和sentinel机器,通过ping命令心跳检测其他的服务器是否可用。

1.发现是否是宕机的master机器,

2.选举一个leader哨兵

3.在master的slaves中选一个作为master

4.进行故障转移

5.进行主从切换,继续正常提供服务

通过上面4个步骤,所以哨兵模式可以达到高可用,前提是sentinel也要多台机器,下面贴出源码流程

因为需要定时去检测master,slaves,sentinel的机器状态,所有哨兵的主函数是在serverCron函数里面定时监控处理

 

Redis 哨兵模式_第1张图片

Redis 哨兵模式_第2张图片

Redis 哨兵模式_第3张图片

 

Redis 哨兵模式_第4张图片

Redis 哨兵模式_第5张图片 

你可能感兴趣的:(Redis)