1. 程式人生 > >Redis Sentinel--運維管理

Redis Sentinel--運維管理

monit rep mman server 微軟 不可用 out 新的 tput

上一篇博客我們介紹了Redis Sentinel的安裝配置,詳情可參考鏈接:Redis Sentinel--安裝配置,今天主要做幾個簡單的測試Case


Redis Sentinel API

ping 正常會返回pong
sentinel masters  返回被監視的所有master及狀態
sentinel master <master name> 返回指定的master及狀態
setntinel slaves <master name> 返回slave及狀態
sentinel sentinels <master name> 返回sentinel及狀態
sentinel get-master-addr-by-name mymaster 返回現在的master IP和Port
sentinel reset * 清理已經移除的master-slave或者sentinel信息
sentinel failover <master name>手動執行故障轉移
sentinel ckquorum <master name> 返回(OK 3 usable Sentinels. Quorum and failover authorization can be reached)
sentinel flushconfig 如果sentinel.conf丟失,可以使用這個命令生成新的配置文件


添加Sentinel

增加一個sentinel很簡單,直接配置好sentinel.conf文件,開啟一個sentinel即可;

添加時最好一個添加結束後,再添加另外一個,不要同時添加,可以每隔30秒添加一個sentinel;

通過SENTINEL MASTER mastername中的num-other-sentinels來查看是否成功添加sentinel。


[root@sht-sgmhadoopdn-04 redis]# cat sentinel.conf
daemonize yes
port 26379
logfile "sentinel.log"
dir "/usr/local/redis"
protected-mode no
sentinel myid 79393e76e002cb64db92fb8bcb88d79f2d85a82b
sentinel monitor mymaster 172.16.101.59 6379 2

[root@sht-sgmhadoopdn-04 redis]# src/redis-sentinel sentinel.conf

172.16.101.54:26379> sentinel master mymaster
33) "num-other-sentinels"
34) "3"


移除Sentinel

刪除一個sentinel稍微復雜一點,sentinel永遠不會刪除一個已經存在過的sentinel,即使它已經與組織失去聯系

Step:

(1) Stop the Sentinel process of the Sentinel you want to remove.


(2) Send a SENTINEL RESET * command to all the other Sentinel instances (instead of * you can use the exact master name if you want to reset just a single master). One after the other, waiting at least 30 seconds between instances.


(3) Check that all the Sentinels agree about the number of Sentinels currently active, by inspecting the output of SENTINEL MASTER mastername of every Sentinel.


[root@sht-sgmhadoopdn-04 redis]# ps -ef|grep redis
root     17510     1  0 18:34 ?        00:00:03 src/redis-sentinel *:26379 [sentinel]
[root@sht-sgmhadoopdn-04 redis]# kill -9 17510

在其他的每個sentinel節點上,每個隔30s執行

172.16.101.54:26379> sentinel reset *
172.16.101.55:26379> sentinel reset *
172.16.101.56:26379> sentinel reset *
172.16.101.54:26379> sentinel master mymaster
33) "num-other-sentinels"
34) "2"


移除一個老的master或不可用的slave

[root@sht-sgmhadoopdn-01 redis]# ps -ef|grep redis
root     15261     1  0 Aug05 ?        00:05:55 src/redis-server 172.16.101.58:6379
root     19768 19394  0 21:09 pts/2    00:00:00 grep --color=auto redis
[root@sht-sgmhadoopdn-01 redis]# kill -9 15261
172.16.101.54:26379> sentinel masters
   31) "num-slaves"
   32) "2"


在每個sentinel節點上,每個隔30s執行

172.16.101.54:26379> sentinel reset mymaster
172.16.101.55:26379> sentinel reset mymaster
172.16.101.56:26379> sentinel reset mymaster

172.16.101.54:26379> sentinel masters
   31) "num-slaves"
   32) "1"



Redis Sentinel--運維管理