# Role

返回主从实例所属的角色

语法

ROLE
  • 可用版本:

    2.8.12

  • 时间复杂度:

    O(1)

  • ACL 类别:

    @admin, @fast, @dangerous

通过返回实例当前是否为masterslavesentinel来提供有关 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"

主输出由以下部分组成:

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

# 副本上的命令输出

ROLE在副本实例中调用时的输出示例:

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

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

  1. 字符串slave,因为向后兼容(请参阅本页末尾的注释)。
  2. 主服务器的 IP。
  3. 主设备的端口号。
  4. 从master的角度来看的复制状态,可以是connect(实例需要连接到它的master),connecting(master-replica连接正在进行中),sync(master和replica正在尝试执行同步), connected(副本在线)。
  5. 到目前为止从副本接收到的数据量,以主复制偏移量表示。

# 哨兵输出

Sentinel 输出示例:

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

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

  1. 字符串sentinel
  2. 此 Sentinel 实例监视的一组主名称。

# 返回

数组回复:其中第一个元素是 masterslavesentinel 中的一个,并且附加元素是特定于角色的,如上所示。

# 例子

redis> ROLE
(error) this user has no permissions to run the 'role' command
redis> 

关于本手册页中使用的单词 slave 的说明:从 Redis 5 开始,如果不是为了向后兼容,Redis 项目不再使用单词 slave。不幸的是,在这个命令中,slave 这个词是协议的一部分,所以只有当这个 API 被自然弃用时,我们才能删除此类事件。

# 反馈

如果您在此页面上发现问题,或有改进建议,请提交请求以合并或打开存储库中的问题。

Last Updated: 4/18/2023, 8:45:33 AM