1 redis主从集群中的哨兵机制(哨兵通常是集群)
redis哨兵(Sentinel)机制,用来解决redis单节点部署中的故障恢复问题。实现redis集群的健康检测和自动恢复功能。
(1)监控:Sentinel会不断检查你的master和slave是否按预期工作。
(2)自动故障恢复:如果master节点故障,Sentinel会将一个slave提升为master。当故障实例恢复后也以新的master为主节点。但是此时RedisClient(java客户端)不知道主从节点的地址变化,所以RedisClient会直接找Sentinel,从而知道最新的主从节点地址。
(3)通知:Sentinel充当redis客户端的服务发现来源,当集群发生故障转移时,会将最新信息推送给Redis的客户端。
1.1 服务状态监控
Sentinel基于心跳机制监测服务状态,每隔1秒向集群的每个redis实例发送ping命令(看是否有对应的pong回应)
(1)主观下线:(某台Sentinel个人认为这个redis实例下线了):
如果某sentinel节点发现某实例未在规定时间响应,则认为该实例主观下线。
(2)客观下线:(