【问题标题】:How to know master/slave status of redis?如何知道redis的主从状态?
【发布时间】:2016-03-05 00:12:28
【问题描述】:

如何从命令行 (redis-cli) 知道 redis 的状态?主/从

【问题讨论】:

    标签: redis


    【解决方案1】:

    INFO command 返回当前角色。

    例如/如果我们是主人

    role:master
    

    将显示,以及其他详细信息。

    如果我们切换到从站,也许可以使用slaveof

    slaveof 192.168.1.66 6379
    

    当我们运行 INFO 时,我们会得到更多:

    role:slave
    master_host:192.168.1.66
    master_port:6379
    master_link_status:down
    master_last_io_seconds_ago:-1
    master_sync_in_progress:0
    master_link_down_since_seconds:1341313174
    

    编辑:这是一个简洁的 cli 命令,如 Linus 所示(但他刚刚删除了他的帖子):

    redis-cli info | grep ^role
    

    :)

    【讨论】:

    • 由于info命令返回的信息很多,可以使用info replication只返回复制状态信息。
    • @gef 如何找到master的名字,可以在sentinel配置中使用?
    【解决方案2】:

    我想通过在分布式设置中提供状态含义来扩展上述答案

    # get sentinel / redis instance role of remote host:
    › redis-cli -h redis-02.a_slave -p 6379 info|grep role 
    role:slave
    
    # get sentinel status of remote host:
    › redis-cli -h redis-01.a_sentinel -p 26379 info|grep status
    master0:name=mymaster,status=ok,address=172.xx.xxx.xx:6379,slaves=2,sentinels=3    
    

    状态

    http://redis.io/topics/sentinel#pubsub-messages

    • +reset-master <instance details> -- 主服务器已重置。
    • +slave <instance details> -- 检测到并附加了一个新的从站。
    • +failover-state-reconf-slaves <instance details> -- 故障转移状态更改为 reconf-slaves 状态。
    • +failover-detected <instance details> -- 检测到由另一个 Sentinel 或任何其他外部实体启动的故障转移(连接的从属变为主控)。
    • +slave-reconf-sent <instance details> -- 领导哨兵向该实例发送 SLAVEOF 命令,以便为新的从属重新配置它。
    • +slave-reconf-inprog <instance details> -- 正在重新配置的从站显示为新主站 ip:port 对的从站,但同步过程尚未完成。
    • +slave-reconf-done <instance details> -- 从站现在与新的主站同步。
    • -dup-sentinel <instance details> -- 指定主服务器的一个或多个哨兵被删除为重复(例如,当哨兵实例重新启动时会发生这种情况)。
    • +sentinel <instance details> -- 检测到并附加了此 master 的新哨兵。
    • +sdown <instance details> -- 指定的实例现在处于主观向下状态。
    • -sdown <instance details> -- 指定的实例不再处于主观关闭状态。
    • +odown <instance details> -- 指定的实例现在处于 Objectively Down 状态。
    • -odown <instance details> -- 指定的实例不再处于 Objectively Down 状态。
    • +new-epoch <instance details> -- 当前纪元已更新。
    • +try-failover <instance details> -- 新的故障转移正在进行中,等待多数人选举。
    • +elected-leader <instance details> -- 赢得指定epoch的选举,可以做failover。
    • +failover-state-select-slave <instance details> -- 新的故障转移状态是 select-slave:我们正在尝试找到一个合适的从站进行升级。
    • no-good-slave <instance details> -- 没有好奴隶可以提拔。目前我们会在一段时间后尝试,但可能这会改变,在这种情况下状态机将完全中止故障转移。
    • selected-slave <instance details> -- 我们找到了指定的好奴隶来提升。
    • failover-state-send-slaveof-noone <instance details> -- 我们正在尝试将提升的从机重新配置为主机,等待它切换。
    • failover-end-for-timeout <instance details> -- 故障转移因超时而终止,slave 最终将被配置为与新的 master 复制。
    • failover-end <instance details> -- 故障转移成功终止。所有从属服务器似乎都被重新配置为与新的主服务器进行复制。
    • switch-master <master name> <oldip> <oldport> <newip> <newport> -- master 新 IP 和地址是配置更改后指定的。这是大多数外部用户感兴趣的信息。
    • +tilt -- 进入倾斜模式。
    • -tilt -- 已退出倾斜模式。

    【讨论】:

      猜你喜欢
      • 2011-08-06
      • 1970-01-01
      • 2014-11-07
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多