Redis的主从架构,如果master发现故障了,还得手动将slave切换成master继续服务,手动的方式容易造成失误,导致数据丢失,那Redis有没有一种机制可以在master和slave进行监控,并在master发送故障的时候,能自动将slave切换成master呢?有的,那就是哨兵。
哨兵的作用:
1、监控redis进行状态,包括master和slave
2、当master down机,能自动将slave切换成master
下面配置哨兵监控redis进程,假如我们已经配置好了Master和Slave,具体详细配置参考http://blog.csdn.net/yingxiake/article/details/51669030
1、新建配置文件,命名为sentinel.conf,输入下面内容
sentinel monitor mymaster 192.168.137.101 6379 1
sentinel auth-pass myMaster master123 #配置密码
mymaster :master服务的名称,随便定义
192.168.137.101 6379:master的ip和端口
1:在至少1个哨兵实例都认为master down后把master标记为odown(objective down客观down;相对应的存在sdown,subjective down,主观down)状态
sentinel.conf具体配置参考http://blog.csdn.net/jinshuaiwang/article/details/44679797
2、启动哨兵,在redis的src目录下,执行下面命令
./redis-sentinel ../../conf/sentinel.conf
可以看到哨兵已经把master和slave都监控了。
3、进行哨兵测试,将103的slave进行shutdown,哨兵将监控到状态。
6594:X 14 Jun 01:01:26.647 # +sdown slave 192.168.137.102:6379 192.168.137.103 6379 @ myMaster 192.168.137.101 6379
然后将103重启服务,查看哨兵控制台
6594:X 14 Jun 20:13:22.716 * +reboot slave 192.168.137.102:6379 192.168.137<