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