角色
语法
ROLE
- 从以下位置开始可用:
- 2.8.12
- 时间复杂度:
- O(1)
- ACL 类别:
-
@admin
,@fast
,@dangerous
,
提供有关 Redis 实例在复制上下文中的角色的信息,如果该实例当前是master
,slave
或sentinel
.该命令还返回有关复制状态(如果角色是 master 或 slave)或受监控的主名称列表(如果角色是 sentinel)的其他信息。
输出格式
该命令返回一个元素数组。第一个元素是 实例,作为以下三个字符串之一:
- “master”
- “奴隶”
- “哨兵”
数组的其他元素取决于角色。
主输出
当ROLE
在 master 实例中调用:
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。
- 主服务器的端口号。
- 从 master 的角度来看,复制的状态可以是
connect
(实例需要连接到其 master)、connecting
(主从连接正在进行中),sync
(主副本和副本正在尝试执行同步)、connected
(副本处于联机状态)。 - 到目前为止从副本接收的数据量(以主复制偏移量表示)。
Sentinel 输出
Sentinel 输出示例:
1) "sentinel"
2) 1) "resque-master"
2) "html-fragments-master"
3) "stats-master"
4) "metadata-master"
sentinel 输出由以下部分组成:
- 字符串
sentinel
. - 此 Sentinel 实例监控的 master 名称数组。
例子
关于本手册页中使用的单词 slave 的说明:从 Redis 5 开始,如果不是为了向后兼容,Redis 项目不再使用单词 slave。不幸的是,在这个命令中,slave 这个词是协议的一部分,所以只有当这个 API 被自然弃用时,我们才能删除此类事件。
RESP2/RESP3 回复
数组回复:其中第一个元素是以下元素之一master
,slave
或sentinel
,其他元素是特定于角色的,如上所示。