ROLE:查看服务器的角色

用户可以通过执行 ROLE 命令来查看服务器当前担任的角色:

  1. ROLE

ROLE 命令在主服务器或者从服务器上执行将产生不同的结果,以下两个小节将分别介绍这两种情况。

主服务器执行 ROLE 命令

如果执行 ROLE 命令的是主服务器,那么命令将返回一个由三个元素组成的数组作为结果:

  • 数组的第一个元素是字符串 "master" ,它表示这个服务器的角色为主服务器。

  • 数组的第二个元素是这个主服务器的复制偏移量(replication offset),它是一个整数,记录了主服务器目前向复制数据流发送的数据数量。

  • 数组的第三个元素是一个数组,它记录了这个主服务器属下的所有从服务器。这个数组的每个元素都由三个子元素组成,第一个子元素为从服务器的 IP 地址,第二个子元素为从服务器的端口号,而第三个子元素则为从服务器的复制偏移量。从服务器的复制偏移量记录了从服务器通过复制数据流接收到的复制数据数量,当从服务器的复制偏移量跟主服务器的复制偏移量保持一致时,它们的数据就是一致的。

以下是一个主服务器执行 ROLE 命令的例子:

  1. 127.0.0.1:6379> ROLE
  2. 1) "master" -- 这是一个主服务器
  3. 2) (integer) 155 -- 它的复制偏移量为 155
  4. 3) 1) 1) "127.0.0.1" -- 第一个从服务器的 IP 地址为 127.0.0.1
  5. 2) "12345" -- 这个从服务器的端口号为 12345
  6. 3) "155" -- 它的复制偏移量为 155
  7. 2) 1) "127.0.0.1" -- 第二个从服务器的 IP 地址为 127.0.0.1
  8. 2) "10086" -- 端口号为 10086
  9. 3) "155" -- 复制偏移量为 155

从服务器执行 ROLE 命令

如果执行 ROLE 命令的是从服务器,那么命令将返回一个由五个元素组成的数组作为结果:

  • 数组的第一个元素是字符串 "slave" ,它表示这个服务器的角色是从服务器。

  • 数组的第二个元素和第三个元素记录了这个从服务器正在复制的主服务器的 IP 地址和端口号。

  • 数组的第四个元素是主服务器与从服务器当前的连接状态,这个状态的值及其表示的意思如下:

    • "none" :主从服务器尚未建立连接;

    • "connect" :主从服务器正在握手;

    • "connecting" :主从服务器成功建立了连接;

    • "sync" :主从服务器正在进行数据同步;

    • "connected" :主从服务器已经进入在线更新状态;

    • "unknown" :主从服务器连接状态未知。

  • 数组的第五个元素是从服务器当前的复制偏移量。

以下是一个从服务器执行 ROLE 命令的例子:

  1. 127.0.0.1:12345> ROLE
  2. 1) "slave" -- 这是一个从服务器
  3. 2) "127.0.0.1" -- 主服务器的 IP 地址
  4. 3) (integer) 6379 -- 主服务器的端口号
  5. 4) "connected" -- 主从服务器已经进入在线更新状态
  6. 5) (integer) 1765 -- 这个从服务器的复制偏移量为 1765

其他信息

属性
复杂度O(1)
版本要求ROLE 命令从 Redis 2.8.12 版本开始可用。