ROLE
语法
ROLE
- 可用版本
- Redis 开源版 2.8.12
- 时间复杂度
- O(1)
- ACL 类别
-
@admin
,@fast
,@dangerous
,
提供关于 Redis 实例在复制上下文中的角色的信息,返回实例是当前的 master
、slave
还是 sentinel
。该命令还返回关于复制状态的附加信息(如果角色是 master 或 slave),或受监控的主节点名称列表(如果角色是 sentinel)。
输出格式
该命令返回一个元素数组。第一个元素是实例的角色,可以是以下三个字符串之一
- "master"
- "slave"
- "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 输出
Sentinel 输出示例
1) "sentinel"
2) 1) "resque-master"
2) "html-fragments-master"
3) "stats-master"
4) "metadata-master"
Sentinel 输出由以下部分组成
- 字符串
sentinel
。 - 此 Sentinel 实例监控的主节点名称数组。
示例
关于本手册页中使用词语 slave 的说明:从 Redis 5 开始,如果不是为了向后兼容,Redis 项目不再使用 slave 一词。不幸的是,在此命令中,slave 是协议的一部分,因此只有当此 API 自然弃用时,我们才能移除此类出现。
RESP2/RESP3 回复
数组回复:其中第一个元素是master
、slave
或 sentinel
之一,附加元素如上文所示,是角色特有的。