redis cluster集群部署后,可以通过redis-cli的 cluster nodes 命令查看集群的节点信息。
输出的每行,都代表一个节点,下面我们讲解下这些信息的含义,为了更直观些,我们将这些信息放入表格里:
id | ip:port | flags | master | ping-sent | pong-recv | config-epoch | config-epoch | slot |
---|---|---|---|---|---|---|---|---|
46dc4de072aad1e44548cfde5b56239001eaff5a | 127.0.0.1:6380@16380 | master | – | 0 | 1623402917302 | 2 | connected | 5461-10922 |
18cc5a352ba7a567bdbad5d777b3712a7b81b0f8 | 127.0.0.1:6384@16384 | slave | 99b3c660b15114ef55247e5b07cbf8f34621bee3 | 0 | 1623402916327 | 3 | connected | |
99b3c660b15114ef55247e5b07cbf8f34621bee3 | 127.0.0.1:6381@16381 | master | – | 0 | 1623402915000 | 3 | connected | 10923-16383 |
3e2cb9b12cf802fec29424dad133e42bc9a5f24c | 127.0.0.1:6382@16382 | slave | 08e3c37dbf40c32af18d2c6c75fce04e1fe41920 | 0 | 1623402915318 | 1 | connected | |
08e3c37dbf40c32af18d2c6c75fce04e1fe41920 | 127.0.0.1:6379@16379 | myself,master | – | 0 | 1623402914000 | 1 | connected | 0-5460 |
954e52a5ec121a68214ca0cede98b727c572727b | 127.0.0.1:6383@16383 | slave | 46dc4de072aad1e44548cfde5b56239001eaff5a | 0 | 1623402916000 | 2 | connected |
每项含义如下:
id
节点ID,是一个40字节的随机字符串,这个值在节点启动的时候创建,并且永远不会改变(除非使用CLUSTER RESET HARD
命令)ip:port
客户端与节点通信使用的地址flags
逗号分割的标记位,可能的值有:myself
,master
,slave
,fail?
,fail
,handshake
,noaddr
,noflags
. 之后将详细介绍这些标记master
如果节点是slave,并且已知master节点,则这里列出master节点ID,否则的话这里列出"-"ping-sent
最近一次发送ping的时间,这个时间是一个unix毫秒时间戳,0代表没有发送过pong-recv
最近一次收到pong的时间,使用unix时间戳表示config-epoch
节点的epoch值(如果该节点是从节点,则为其主节点的epoch值)。每当节点发生失败切换时,都会创建一个新的,独特的,递增的epoch。如果多个节点竞争同一个哈希槽时,epoch值更高的节点会抢夺到link-state
node-to-node集群总线使用的链接的状态,我们使用这个链接与集群中其他节点进行通信.值可以是connected
和disconnected
slot
哈希槽值或者一个哈希槽范围. 从第9个参数开始,后面最多可能有16384个 数(limit never reached)。代表当前节点可以提供服务的所有哈希槽值。如果只是一个值,那就是只有一个槽会被使用。如果是一个范围,这个值表示为起始槽-结束槽
,节点将处理包括起始槽和结束槽在内的所有哈希槽
各flags的含义
myself
: 当前连接的节点master
: 节点是masterslave
: 节点是slavefail?
: 节点处于PFAIL
状态。 当前节点无法联系,但逻辑上是可达的 (非FAIL
状态)fail
: 节点处于FAIL
状态. 大部分节点都无法与其取得联系将会将改节点由PFAIL
状态升级至FAIL
状态handshake
: 还未取得信任的节点,当前正在与其进行握手noaddr
: 没有地址的节点(No address known for this node)noflags
: 连个标记都没有(No flags at all)