ROLE

用法
ROLE
复杂度
O(1)
起始版本
2.8.12
ACL 类别
@admin, @dangerous, @fast

通过返回实例当前是 masterslavesentinel 来提供有关 Valkey 实例在复制上下文中的角色信息。该命令还返回有关复制状态(如果角色是主节点或副本节点)或被监控主节点名称列表(如果角色是哨兵)的附加信息。

输出格式

该命令返回一个元素数组。第一个元素是实例的角色,可以是以下三个字符串之一:

  • "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"

主节点输出由以下部分组成:

  1. 字符串 master
  2. 当前主节点复制偏移量,这是主节点和副本节点共享的偏移量,用于在部分重新同步中理解副本节点需要获取的复制流部分以继续。
  3. 一个由三个元素数组组成的数组,表示连接的副本节点。每个子数组包含副本节点的 IP、端口和最后确认的复制偏移量。

副本节点上的命令输出

在副本节点实例中调用 ROLE 命令时的输出示例

1) "slave"
2) "127.0.0.1"
3) (integer) 9000
4) "connected"
5) (integer) 3167038

副本节点输出由以下部分组成:

  1. 字符串 slave,因为兼容 Redis OSS(参见本页末尾的说明)。
  2. 主节点的 IP。
  3. 主节点的端口号。
  4. 从主节点角度看复制状态,可以是 connect(实例需要连接到其主节点)、connecting(主节点-副本节点连接正在进行中)、sync(主节点和副本节点正在尝试执行同步)、connected(副本节点在线)。
  5. 到目前为止从副本节点接收到的数据量(以主节点复制偏移量表示)。

哨兵输出

哨兵输出示例

1) "sentinel"
2) 1) "resque-master"
   2) "html-fragments-master"
   3) "stats-master"
   4) "metadata-master"

哨兵输出由以下部分组成:

  1. 字符串 sentinel
  2. 此哨兵实例监控的主节点名称数组。

示例

127.0.0.1:6379> ROLE
1) "master"
2) (integer) 0
3) (empty array)

关于本手册页中使用“slave”一词的说明:如果不是为了向后兼容,Valkey 项目不再使用“master”和“slave”这两个词。不幸的是,在给定命令中,这些词是协议的一部分,所以只有当此 API 自然淘汰时,我们才能删除这些出现。

RESP2/RESP3 回复

数组回复:其中第一个元素是 masterslavesentinel 之一,其他元素则根据角色而定,如上所示。