Redis 3.x——哨兵API
哨兵API1、sentinel masters2、sentinel master \master name3、sentinel slaves \master name4、sentinel sentinels \master name5、sentinel get-master-addr-by-name \mastername6、sentinel reset \pattern7、sentinel failover \master name8、sentinel ckquorum \master name9、sentinel flushconfig10、sentinel remove \master name11、sentinel monitor \master name \ip \port \quorum12、sentinel set \master name13、sentinel is-master-down-by-addrSentinel节点是一个特殊的Redis节点它有自己专属的API本节将对其进行介绍。为了方便演示以下图进行说明Sentinel节点集合监控着两组主从模式的Redis数据节点。1、sentinel masters展示所有被监控的主节点状态以及相关的统计信息例如127.0.0.1:26379sentinel masters1)1)name2)mymaster-23)ip4)127.0.0.15)port6)6382………忽略…………2)1)name2)mymaster-13)ip4)127.0.0.15)port6)6379………忽略…………2、sentinel master master name展示指定master name的主节点状态以及相关的统计信息例如127.0.0.1:26379sentinel master mymaster-11)name2)mymaster-13)ip4)127.0.0.15)port6)6379………忽略…………3、sentinel slaves master name展示指定master name的从节点状态以及相关的统计信息例如127.0.0.1:26379sentinel slaves mymaster-11)1)name2)127.0.0.1:63803)ip4)127.0.0.15)port6)6380………忽略…………2)1)name2)127.0.0.1:63813)ip4)127.0.0.15)port6)6381………忽略…………4、sentinel sentinels master name展示指定master name的Sentinel节点集合不包含当前Sentinel节点例如127.0.0.1:26379sentinel sentinels mymaster-11)1)name2)127.0.0.1:263803)ip4)127.0.0.15)port6)26380………忽略…………2)1)name2)127.0.0.1:263813)ip4)127.0.0.15)port6)26381………忽略…………5、sentinel get-master-addr-by-name mastername返回指定master name主节点的IP地址和端口例如127.0.0.1:26379sentinel get-master-addr-by-name mymaster-11)127.0.0.12)63796、sentinel reset pattern当前Sentinel节点对符合pattern通配符风格主节点的配置进行重置包含清除主节点的相关状态例如故障转移重新发现从节点和Sentinel节点。例如sentinel-1节点对mymaster-1节点重置状态如下127.0.0.1:26379sentinel reset mymaster-1(integer)17、sentinel failover master name对指定主节点进行强制故障转移没有和其他Sentinel节点“协商”当故障转移完成后其他Sentinel节点按照故障转移的结果更新自身配置这个命令在Redis Sentinel的日常运维中非常有用。例如对mymaster-2进行故障转移127.0.0.1:26379sentinel failover mymaster-2 OK执行命令前mymaster-2是127.0.0.16382127.0.0.1:26379info sentinel# Sentinelsentinel_masters:2 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 master0:namemymaster-2,statusok,address127.0.0.1:6382,slaves2,sentinels3master1:namemymaster-1,statusok,address127.0.0.1:6379,slaves2,sentinels3执行命令后mymaster-2由原来的一个从节点127.0.0.16383代替。127.0.0.1:26379info sentinel# Sentinelsentinel_masters:2 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 master0:namemymaster-2,statusok,address127.0.0.1:6383,slaves2,sentinels3master1:namemymaster-1,statusok,address127.0.0.1:6379,slaves2,sentinels38、sentinel ckquorum master name检测当前可达的Sentinel节点总数是否达到的个数。例如quorum3而当前可达的Sentinel节点个数为2个那么将无法进行故障转移Redis Sentinel的高可用特性也将失去。127.0.0.1:26379sentinel ckquorum mymaster-1 OK3usable Sentinels. Quorum and failover authorization can be reached9、sentinel flushconfig将Sentinel节点的配置强制刷到磁盘上这个命令Sentinel节点自身用得比较多对于开发和运维人员只有当外部原因例如磁盘损坏造成配置文件损坏或者丢失时这个命令是很有用的。127.0.0.1:26379sentinel flushconfig OK10、sentinel remove master name取消当前Sentinel节点对于指定master name主节点的监控。例如sentinel-1当前对mymaster-1进行了监控127.0.0.1:26379info sentinel# Sentinelsentinel_masters:2 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 master0:namemymaster-2,statusok,address127.0.0.1:6382,slaves2,sentinels3master1:namemymaster-1,statusok,address127.0.0.1:6379,slaves2,sentinels3例如下面sentinel-1节点取消对mymaster-1节点的监控但是要注意这个命令仅仅对当前Sentinel节点有效。127.0.0.1:26379sentinel remove mymaster-1 OK再执行info sentinel命令发现sentinel-1已经失去对mymaster-1的监控127.0.0.1:26379info sentinel# Sentinelsentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 master0:namemymaster-2,statusok,address127.0.0.1:6383,slaves2,sentinels311、sentinel monitor master name ip port quorum这个命令和配置文件中的含义是完全一样的只不过是通过命令的形式来完成Sentinel节点对主节点的监控。例如命令sentinel-1节点重新监控mymaster-1节点127.0.0.1:26379sentinel monitor mymaster-1127.0.0.163792OK命令执行后发现sentinel-1节点重新对mymaster-1节点进行监控# Sentinelsentinel_masters:2 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 master0:namemymaster-2,statusok,address127.0.0.1:6383,slaves2,sentinels3master1:namemymaster-1,statusok,address127.0.0.1:6379,slaves2,sentinels312、sentinel set master name动态修改Sentinel节点配置选项。13、sentinel is-master-down-by-addrSentinel节点之间用来交换对主节点是否下线的判断根据参数的不同还可以作为Sentinel领导者选举的通信方式。