1. Redis Sentinel功能

        Redis Sentinel是一套用于管理Redis实例的分布式系统,主要完成3项任务:
         1) Monitoring:持续监控Redis master或slave实例的运行情况是否符合预期
         2) Notification:若被监控的Redis实例运行异常,sentinel会通过API通知外界(人或程序)
         3) Automation failover:若master实例故障,sentinel会重新选主并启动自动故障切换:选择slave-priority最小的那个slave实例并将其提升为master,同时修改其它slave的配置,使其master配置项指向新的master,当old master恢复重启后,会自动降级为new master的slave。最后,根据配置,Redis Sentinel还会将新的master地址通知给当前正在访问Redis的应用程序

2、部署情况

10.150.21.65 master
10.150.21.69 slave
10.150.21.66 Sentinel server

3、master,slave,Sentinel server 都要安装redis;

4、在slave主机上执行

redis-cli slaveof 10.150.21.65 6379 ;/etc/init.d/redis stop;/etc/init.d/redis start

5、配置Sentinel server

 vim sentinel.conf 

#####################sentinel.conf #############
 port 26379
dir "/tmp"
sentinel monitor test1 10.150.21.65 6379 1 
sentinel config-epoch test1 2
sentinel leader-epoch test1 2
sentinel known-slave test1 10.150.21.69 6379
sentinel current-epoch 2 
#####################sentinel.conf #############

6、启动Sentinel server

redis-server sentinel.conf --sentinel  &

7、Sentinel 常用命令

查询master状态

redis-cli -h 10.150.21.66 -p 26379 info Sentinel

以获取到主IP地址

redis-cli  -h 127.0.0.7 -p 26379  info sentinel| awk -F ',' '/status/ {print $3}'| awk -F '=' '{print $2}'

查询slave状态

redis-cli -h 127.0.0.1 -p 26379 sentinel slaves test1

也可以查看实时信息

watch redis-cli -h 127.0.0.1 -p 26379 sentinel slaves test1