美文网首页
redis 集群命令

redis 集群命令

作者: Scallion | 来源:发表于2018-09-03 15:31 被阅读0次

    1.redis cluster命令

    集群(cluster)

      1. cluster info 打印集群的信息
      1. cluster nodes 列出集群当前已知的所有节点(node),以及这些节点的相关信息

    节点(node)

      1. cluster meet <ip> <port> 将ip和port所指定的节点添加到集群当中,让它成为集群的一份子
      1. cluster forget <node_id> 从集群中移除node_id指定的节点
      1. cluster replicate <node_id> 将当前节点设置为node_id指定的节点的从节点
      1. cluster saveconfig 将节点的配置文件保存到硬盘里面
      1. cluster slaves <node_id> 列出该slave节点的master节点
      1. cluster set-config-epoch 强制设置configEpoch

    槽(slot)

      1. cluster addslots <slot> [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点
      1. cluster delslots <slot> [slot ...] 移除一个或多个槽对当前节点的指派
      1. cluster flushslots 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点
      1. cluster setslot <slot> node <node_id> 将槽slot指派给node_id指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽,然后再进行指派
    • 13 cluster setslot <slot> migrating <node_id> 将本节点的槽slot迁移到node_id指定的节点中

      1. cluster setslot <slot> importing <node_id> 从node_id 指定的节点中导入槽slot到本节点
      1. cluster setslot <slot> stable 取消对槽slot的导入(import)或者迁移(migrate)

    键(key)

      1. cluster keyslot <key> 计算键key应该被放置在哪个槽上
      1. cluster countkeysinslot <slot> 返回槽slot目前包含的键值对数量
      1. cluster getkeysinslot <slot> <count> 返回count个slot槽中的键

    其它

    • 20 .cluster myid 返回节点的ID

      1. cluster slots 返回节点负责的slot
      1. cluster reset 重置集群,慎用

    2.redis cluster状态

    
    cluster_state:ok             
    如果当前redis发现有failed的slots,默认为把自己cluster_state从ok个性为fail, 写入命令会失败。如果设置cluster-require-full-coverage为no,则无此限制。
    
    cluster_slots_assigned:16384   #已分配的槽
    
    cluster_slots_ok:16384              #槽的状态是ok的数目
    
    cluster_slots_pfail:0                    #可能失效的槽的数目
    
    cluster_slots_fail:0                      #已经失效的槽的数目
    
    cluster_known_nodes:6             #集群中节点个数
    
    cluster_size:3                              #集群中设置的分片个数
    
    cluster_current_epoch:15          #集群中的currentEpoch总是一致的,currentEpoch越高,代表节点的配置或者操作越新,集群中最大的那个node epoch
    
    cluster_my_epoch:12                 #当前节点的config epoch,每个主节点都不同,一直递增, 其表示某节点最后一次变成主节点或获取新slot所有权的逻辑时间.
    
    cluster_stats_messages_sent:270782059
    
    cluster_stats_messages_received:270732696
    
    • 1、集群是如何判断是否有某个节点挂掉
        首先要说的是,每一个节点都存有这个集群所有主节点以及从节点的信息。它们之间通过互相的ping-pong判断是否节点可以连接上。如果有一半以上的节点去ping一个节点的时候没有回应,集群就认为这个节点宕机了,然后去连接它的备用节点。

    • 2、集群进入fail状态的必要条件
      A、某个主节点和所有从节点全部挂掉,我们集群就进入faill状态。
      B、如果集群超过半数以上master挂掉,无论是否有slave,集群进入fail状态.
      C、如果集群任意master挂掉,且当前master没有slave.集群进入fail状态

    172.16.160.67:7006> cluster nodes
    a6e8379b9d5132e65f15f1a417f08e3d05dc85c1 172.16.160.65:7002 master - 0 1535962131033 8 connected 5461-10922
    610ae4d04b49aefe4e6f7b41d7eaa0b65149c779 172.16.160.66:7003 slave a6e8379b9d5132e65f15f1a417f08e3d05dc85c1 0 1535962129030 8 connected
    e920f7e691bf6e38931d67f30de37ce222350896 172.16.160.67:7006 myself,slave 29e42914c1fcdc3ba5876c956d071c609f241595 0 0 6 connected
    29e42914c1fcdc3ba5876c956d071c609f241595 172.16.160.67:7005 master - 0 1535962131533 5 connected 10923-16383
    d351bd7b7cdec9abe1347281b78dbe3efe5cf053 172.16.160.65:7001 master - 0 1535962132034 1 connected 0-5460
    a549116303d3400f52ca6946ccc0dc977ba735f8 172.16.160.66:7004 slave d351bd7b7cdec9abe1347281b78dbe3efe5cf053 0 1535962130032 4 connected
    

    说明:
    节点ID:例如a6e8379b9d5132e65f15f1a417f08e3d05dc85c1
    ip:port:节点的ip地址和端口号,例如172.16.160.65:7002
    flags:节点的角色(master,slave,myself)以及状态(pfail,fail)
    如果节点是一个从节点的话,那么跟在flags之后的将是主节点的节点ID,例如172.16.160.66:7003主节点的ID就是a6e8379b9d5132e65f15f1a417f08e3d05dc85c1
    集群最近一次向节点发送ping命令之后,过了多长时间还没接到回复
    节点最近一次返回pong回复的时间
    节点的配置纪元(config epoch)
    本节点的网络连接情况
    节点目前包含的槽,例如172.16.160.65:7002目前包含的槽为5461-10922

    Redis 命令参考
    通俗易懂的Redis数据结构基础教程

    相关文章

      网友评论

          本文标题:redis 集群命令

          本文链接:https://www.haomeiwen.com/subject/bozbwftx.html