角色
Syntax
ROLE
- Available since:
- 2.8.12
- Time complexity:
- O(1)
- ACL categories:
-
@admin
,@fast
,@dangerous
,
提供关于Redis实例在复制上下文中角色的信息,通过返回实例当前是master
、slave
还是sentinel
。该命令还返回关于复制状态的附加信息(如果角色是master或slave)或监控的主服务器名称列表(如果角色是sentinel)。
输出格式
该命令返回一个元素数组。第一个元素是实例的角色,为以下三个字符串之一:
- "master"
- "从属"
- "sentinel"
数组的额外元素取决于角色。
主输出
当在主实例中调用ROLE
时的输出示例:
1) "master"
2) (integer) 3129659
3) 1) 1) "127.0.0.1"
2) "9001"
3) "3129242"
2) 1) "127.0.0.1"
2) "9002"
3) "3129543"
主输出由以下部分组成:
- 字符串
master
。 - 当前主复制偏移量,这是一个主节点和副本节点共享的偏移量,用于在部分重新同步中理解副本节点需要获取的复制流部分以继续。
- 一个由三个元素组成的数组,表示连接的副本。每个子数组包含副本的IP、端口和最后确认的复制偏移量。
副本上的命令输出
当在副本实例中调用ROLE
时的输出示例:
1) "slave"
2) "127.0.0.1"
3) (integer) 9000
4) "connected"
5) (integer) 3167038
副本输出由以下部分组成:
- 字符串
slave
,由于向后兼容性(请参阅本页末尾的注释)。 - 主节点的IP地址。
- 主节点的端口号。
- 从主节点的角度来看,复制的状态可以是
connect
(实例需要连接到其主节点),connecting
(主从连接正在进行中),sync
(主节点和从节点正在尝试执行同步),connected
(从节点在线)。 - 到目前为止从副本接收的数据量,以主复制偏移量表示。
哨兵输出
Sentinel输出的一个示例:
1) "sentinel"
2) 1) "resque-master"
2) "html-fragments-master"
3) "stats-master"
4) "metadata-master"
哨兵输出由以下部分组成:
- 字符串
sentinel
。 - 此Sentinel实例监控的主名称数组。
示例
关于本手册页中使用的“slave”一词的说明:从Redis 5开始,如果不是为了向后兼容,Redis项目不再使用“slave”一词。不幸的是,在这个命令中,“slave”一词是协议的一部分,因此我们只能在该API自然弃用时才能删除这些出现的情况。
RESP2/RESP3 回复
Array reply: where the first element is one ofmaster
, slave
, or sentinel
, and the additional elements are role-specific as illustrated above.