1、redis cluster命令
->#######################查看集群信息##########################
->cluster info ##打印集群的信息
->cluster nodes ##列出集群當前已知的所有節點(node),以及這些節點的相關信息
->########################節點操作命名##########################
->cluster meet <ip> <port> ##將ip和port所指定的節點添加到集群當中,讓它成為集群的一份子
->cluster forget <node_id> ##從集群中移除node_id指定的節點
->cluster replicate <node_id> ##將當前節點設置為node_id指定的節點的從節點
->cluster saveconfig ##將節點的配置文件保存到硬盤里面
->cluster slaves <node_id> ##列出該slave節點的master節點
->cluster set-config-epoch ##強制設置configEpoch
->#########################槽(slot)##########################
->cluster addslots <slot> [slot ...] ##將一個或多個槽(slot)指派(assign)給當前節點
->cluster delslots <slot> [slot ...] ##移除一個或多個槽對當前節點的指派
->cluster flushslots ##移除指派給當前節點的所有槽,讓當前節點變成一個沒有指派任何槽的節點
->cluster setslot <slot> node <node_id> ##將槽slot指派給node_id指定的節點,如果槽已經指派給另一個節點,那么先讓另一個節點刪除該槽,然后再進行指派
->cluster setslot <slot> migrating <node_id> ##將本節點的槽slot遷移到node_id指定的節點中
->cluster setslot <slot> importing <node_id> ##從node_id 指定的節點中導入槽slot到本節點
->cluster setslot <slot> stable ##取消對槽slot的導入(import)或者遷移(migrate)
鍵(key)
->cluster keyslot <key> ##計算鍵key應該被放置在哪個槽上
->cluster countkeysinslot <slot> ##返回槽slot目前包含的鍵值對數量
->cluster getkeysinslot <slot> <count> ##返回count個slot槽中的鍵
->cluster myid ##返回節點的ID
->cluster slots ##返回節點負責的slot
->cluster reset ##重置集群,慎用
2、cluster info 命令詳解
127.0.0.1:6379> cluster info ##命令
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
3、集群是如何判斷是否有某個節點掛掉
首先要說的是,每一個節點都存有這個集群所有主節點以及從節點的信息。它們之間通過互相的ping-pong判斷是否節點可以連接上。
如果有一半以上的節點去ping一個節點的時候沒有回應,集群就認為這個節點宕機了,然后去連接它的備用節點。
4、集群進入fail狀態的條件
1、某個主節點和所有從節點全部掛掉,我們集群就進入faill狀態。
2、如果集群超過半數以上master掛掉,無論是否有slave,集群進入fail狀態.
3、如果集群任意master掛掉,且當前master沒有slave.集群進入fail狀態