概述
Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。
功能
- 不时地监控redis是否按照预期良好地运行;
- 如果发现某个redis节点运行出现状况,能够通知另一个进程,例如它的客户端;
- 能够进行自动切换。当一个master节点不可用时,能够选出master的多个slave中的一个来作为新的master,其他的slave节点会将它所追随的master地址改为被提升为master的新地址。
Sentinel支持集群
运行Sentinel
Sentinel配置
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
sentinel monitor resque 192.168.1.3 6380 4
sentinel down-after-milliseconds resque 10000
sentinel failover-timeout resque 180000
sentinel parallel-syncs resque 5
- sentinel监控的master名字叫做mymaster 地址为127.0.0.1:6379
- 2的意思是两个sentinel都认为master死了才真的认为该master不可用。
Sentinel仲裁
SDOWN:subjectively down 在一定时间内不回应PONG或者是回复了错误消息,会单方面的认为这个master已经不可用了。
ODOWN:objectively down:和SDOWN相对,多于某个数量的sentinel认为master死了。