127.0.0.1:26379> sentinel sentinels mymaster
1) 1) "name"
2) "738ccbddaa0d4379d89a147613d9aecfec765bcb"
3) "ip"
4) "127.0.0.1"
5) "port"
6) "26381"
7) "runid"
8) "738ccbddaa0d4379d89a147613d9aecfec765bcb"
9) "flags"
10) "sentinel"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "475"
19) "last-ping-reply"
20) "475"
21) "down-after-milliseconds"
22) "30000"
23) "last-hello-message"
24) "79"
25) "voted-leader"
26) "?"
27) "voted-leader-epoch"
28) "0"
2) 1) "name"
2) "7251bb129ca373ad0d8c7baf3b6577ae2593079f"
3) "ip"
4) "127.0.0.1"
5) "port"
6) "26380"
7) "runid"
8) "7251bb129ca373ad0d8c7baf3b6577ae2593079f"
9) "flags"
10) "sentinel"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "475"
19) "last-ping-reply"
20) "475"
21) "down-after-milliseconds"
22) "30000"
23) "last-hello-message"
24) "985"
25) "voted-leader"
26) "?"
27) "voted-leader-epoch"
28) "0"
sentinel get-master-addr-by-name <master name>
返回指定<master name>主节点的IP地址和端口。如果在进行故障切换,则显示的是新主的信息。
127.0.0.1:26379> sentinel get-master-addr-by-name mymaster
1) "127.0.0.1"
2) "6379"
sentinel reset <pattern>
对符合<pattern>(通配符风格)主节点的配置进行重置。
如果某个slave宕机了,其依然处于sentinel的管理中,所以,在其恢复正常后,其依然会加入到之前的复制环境中,即使配置文件中没有指定slaveof选项。不仅如此,如果主节点宕机了,在其重启后,其默认会作为从节点接入到之前的复制环境中。
但很多时候,我们可能就是想移除old master,slave,这个时候,sentinel reset就派上用场了。其会基于当前主节点的状态,重置其配置(they'll refresh the list of slaves within the next 10 seconds, only adding the ones listed as correctly replicating from the current master INFO output)。关键的是,对于非正常状态的slave,会从当前的配置中剔除。这样,被剔除节点在恢复正常后(注意此时的配置文件,需剔除slaveof的配置),也不会自动加入到之前的复制环境中。
需要注意的是,该命令仅对当前sentinel节点有效,如果要剔除某个节点,需要在所有的sentinel节点上执行reset操作。
sentinel failover <master name>
对指定 <master name> 主节点进行强制故障切换。相对于常规的故障切换,其无需进行Sentinel节点的领导者选举。直接由当前Sentinel节点进行后续的故障切换。
sentinel ckquorum <master name>
检测当前可达的Sentinel节点总数是否达到<quorum>的个数
127.0.0.1:26379> sentinel ckquorum mymaster
OK 3 usable Sentinels. Quorum and failover authorization can be reached
sentinel flushconfig
将Sentinel节点的配置信息强制刷到磁盘上,这个命令Sentinel节点自身用得比较多,对于开发和运维人员只有当外部原因(例如磁盘损坏)造成配置文件损坏或者丢失时,才会用上。
sentinel remove <master name>
取消当前Sentinel节点对于指定<master name>主节点的监控。