ROLE
返回复制角色。
语法
ROLE
引入版本:2.8.12
复杂度摘要:O(1)
通过返回实例当前是否为 master、slave 或 sentinel,提供有关 Redis 实例在复制上下文中的角色的信息。该命令还返回有关复制状态(如果角色是主服务器或从服务器)或受监视主服务器名称列表(如果角色是哨兵)的附加信息。
输出格式
该命令返回一个元素数组。第一个元素是实例的角色,为以下三个字符串之一:
- “大师”
- “奴隶”
- “哨兵”
数组的附加元素取决于角色。
主输出
在主实例中调用 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 实例监控的主机名称数组。
示例
redis> ROLE
1) "master"
2) (integer) 0
3) (empty array)
关于本手册页中使用的“slave”一词的注释:从Redis 5开始,如果不是为了向后兼容,Redis项目不再使用slave这个词。不幸的是,在这个命令中,slave 这个词是协议的一部分,所以只有当这个 API 自然被弃用时,我们才能删除这种情况。
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ❌ 标准 |
❌ 标准 |
返回值
RESP2
数组回复:其中第一个元素是 master、slave 或 sentinel 之一,其他元素是特定于角色的,如上所示。
RESP3
数组回复:其中第一个元素是 master、slave 或 sentinel 之一,其他元素是特定于角色的,如上所示。
资料来源:Redis 官方 ROLE 文档;中文内容参考 Redis 文档许可。