Redis
Redis 教程
Redis中key键与value类型的相关操作
Redis排障命令
Redis哨兵集群运维指令
本文档使用 MrDoc 发布
-
+
home page
Redis哨兵集群运维指令
## Sentinel常用命令 以下列出的是Sentinel接受的命令: - `PING`:返回PONG。 - `SENTINEL master <master name>`:用于查看监控的某个Redis Master信息,包括配置和状态等。 - `SENTINEL slaves <master name>`:列出给定主服务器的所有从服务器,以及这些从服务器的当前状态。 - `SENTINEL sentinels <master name>`:查看给定主服务器的Sentinel实例列表及其状态。 - `SENTINEL get-master-addr-by-name <master name>`:返回给定名字的主服务器的IP地址和端口号。 如果这个主服务器正在执行故障转移操作,或者针对这个主服务器的故障转移操作已经完成,那么这个命令返回新的主服务器的IP地址和端口号。 - `SENTINEL reset <pattern>`:重置所有名字和给定模式pattern相匹配的主服务器。pattern 参数是一个Glob风格的模式。重置操作清除主服务器目前的所有状态,包括正在执行中的故障转移,并移除目前已经发现和关联的,主服务器的所有从服务器和Sentinel。 - `SENTINEL failover <master name>`:当主服务器失效时, 在不询问其他Sentinel意见的情况下, 强制开始一次自动故障迁移(不过发起故障转移的Sentinel会向其他Sentinel发送一个新的配置,其他Sentinel会根据这个配置进行相应的更新)。 - `SENTINEL reset <pattern>`:强制重设所有监控的Master状态,清除已知的Slave和Sentinel实例信息,重新获取并生成配置文件,当`<pattern>`为`*`时表示清除所有。 - `SENTINEL failover <master name>`:强制发起一次某个Master的failover,如果该Master不可访问的话。 - `SENTINEL ckquorum <master name>`:检测Sentinel配置是否合理,failover的条件是否可能满足,主要用来检测你的Sentinel配置是否正常。 - `SENTINEL flushconfig`:强制Sentinel重写所有配置信息到配置文件。 - `SENTINEL is-master-down-by-addr <ip> <port>`:一个Sentinel可以通过向另一个Sentinel发送SENTINEL is-master-down-by-addr命令来询问对方是否认为给定的服务器已下线。 ## 动态修改Sentinel配置 以下是一些修改sentinel配置的命令: - `SENTINEL MONITOR <name> <ip> <port> <quorum>` : 告诉sentinel去监听一个新的master - `SENTINEL REMOVE <name>` : 命令sentinel放弃对某个master的监听 - `SENTINEL SET <name> <option> <value> ` : 该命令类似Redis的`CONFIG SET`命令,用来改变指定master的配置。支持多个。 例如以下实例: ``` SENTINEL SET mymaster down-after-milliseconds 1000 ``` 只要是配置文件中存在的配置项,都可以用SENTINEL SET命令来设置。 同时可用来设置master的属性,比如说quorum(票数),而不需要先删除master,再重新添加master。示例: ``` SENTINEL SET mymaster quorum 5 ``` ## 增加和移除Sentinel ### 增加Sentinel 增加新的Sentinel实例非常简单,修改好配置文件,启动即可,其他Sentinel会自动发现该实例并加入集群。如果要批量启动Sentinel节点,最好以30秒的间隔启动,确保整个 Sentinel集群的大多数能够及时感知到新节点,满足当时可能发生的选举条件。 ### 移除Sentinel 移除一个Sentinel实例会相对繁琐,因为Sentinel不会主动清理已经感知到的Sentinel实例,请按照下列步骤来处理: 1. 停止将要移除的sentinel进程。 2. 给其余的sentinel进程发送`SENTINEL RESET *`命令来重置状态,每个进程之间间隔30秒,该命令会清空当前sentinel实例的配置信息,并可自动重新获取产生新的配置 3. 清除后新新配置的生成信息可通过`SENTINEL MASTER <mastername>`命令查看,或者直接查看配置文件。 ## 删除旧/不可达节点 sentinel永远会存在一个Master可用slaves,即使slave已经脱离集群。因为sentinel集群有能力将可用的slave进行重新配置。 并且,failover后,失效的master将会被标记为新master的一个slave,并当它变得可用时,会从新master上复制数据。 若因节点不可达或其他原因需要永久地删除一个slave(或旧的master)时,只需发送命令`SENTINEL RESET master`命令给所有的sentinels,它们将会更新列表里能够正确地复制master数据的slave。 ## 发布和订阅 客户端可以向一个sentinel发送订阅某个频道的事件的命令,当有特定的事件发生时,sentinel会通知所有订阅的客户端。需要注意的是客户端只能订阅,不能发布。 订阅频道的名字与事件的名字一致。例如,频道名为sdown 将会发布所有与SDOWN相关的消息给订阅者。 如果想要订阅所有消息,只需使用`PSUBSCRIBE *`命令 以下是所有可以收到的消息的消息格式,如果订阅了所有消息的话。第一个单词是频道的名字,其它是数据的格式。 注意:以下的instance details的格式是: ``` <instance-type> <name> <ip> <port> @ <master-name> <master-ip> <master-port> ``` 如果这个redis实例是一个master,那么上述格式中的`@`之后的消息就不会显示。 ```shell +reset-master <instance details> -- 当master被重置时. +slave <instance details> -- 当检测到一个slave并添加进slave列表时. +failover-state-reconf-slaves <instance details> -- Failover状态变为reconf-slaves状态时 +failover-detected <instance details> -- 当failover发生时 +slave-reconf-sent <instance details> -- sentinel发送SLAVEOF命令把它重新配置时 +slave-reconf-inprog <instance details> -- slave被重新配置为另外一个master的slave,但数据复制还未发生时。 +slave-reconf-done <instance details> -- slave被重新配置为另外一个master的slave并且数据复制已经与master同步时。 -dup-sentinel <instance details> -- 删除指定master上的冗余sentinel时 (当一个sentinel重新启动时,可能会发生这个事件). +sentinel <instance details> -- 当master增加了一个sentinel时。 +sdown <instance details> -- 进入SDOWN状态时; -sdown <instance details> -- 离开SDOWN状态时。 +odown <instance details> -- 进入ODOWN状态时。 -odown <instance details> -- 离开ODOWN状态时。 +new-epoch <instance details> -- 当前配置版本被更新时。 +try-failover <instance details> -- 达到failover条件,正等待其他sentinel的选举。 +elected-leader <instance details> -- 被选举为去执行failover的时候。 +failover-state-select-slave <instance details> -- 开始要选择一个slave当选新master时。 no-good-slave <instance details> -- 没有合适的slave来担当新master selected-slave <instance details> -- 找到了一个适合的slave来担当新master failover-state-send-slaveof-noone <instance details> -- 当把选择为新master的slave的身份进行切换的时候。 failover-end-for-timeout <instance details> -- failover由于超时而失败时。 failover-end <instance details> -- failover成功完成时。 switch-master <master name> <oldip> <oldport> <newip> <newport> -- 当master的地址发生变化时。 +tilt -- 进入Tilt模式。 -tilt -- 退出Tilt模式。 ```
Nathan
Aug. 26, 2022, 6:14 p.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
PDF文件
Docx文件
share
link
type
password
Update password