ROLE:查看服务器的角色
用户可以通过执行 ROLE 命令来查看服务器当前担任的角色:
ROLE
ROLE 命令在主服务器或者从服务器上执行将产生不同的结果,以下将分别介绍这两种情况。
主服务器执行ROLE命令
如果执行 ROLE 命令的是主服务器,那么命令将返回一个由 3 个元素组成的数组作为结果:
-
数组的第 1 个元素是字符串 "master",它表示这个服务器的角色为主服务器。
-
数组的第 2 个元素是这个主服务器的复制偏移量(replication offset),它是一个整数,记录了主服务器目前向复制数据流发送的数据数量。
-
数组的第 3 个元素是一个数组,它记录了这个主服务器属下的所有从服务器。这个数组的每个元素都由 3 个子元素组成,第 1 个子元素为从服务器的 IP 地址,第 2 个子元素为从服务器的端口号,而第 3 个子元素则为从服务器的复制偏移量。从服务器的复制偏移量记录了从服务器通过复制数据流接收到的复制数据数量,当从服务器的复制偏移量与主服务器的复制偏移量保持一致时,它们的数据就是一致的。
以下是一个主服务器执行 ROLE 命令的例子:
127.0.0.1:6379> ROLE
1) "master" --这是一个主服务器
2) (integer) 155 --它的复制偏移量为155
3) 1) 1) "127.0.0.1" --第1个从服务器的IP地址为127.0.0.1
2) "12345" --这个从服务器的端口号为12345
3) "155" --它的复制偏移量为155
2) 1) "127.0.0.1" --第2个从服务器的IP地址为127.0.0.1
2) "10086" --端口号为10086
3) "155" --复制偏移量为155
从服务器执行ROLE命令
如果执行 ROLE 命令的是从服务器,那么命令将返回一个由 5 个元素组成的数组作为结果:
-
数组的第 1 个元素是字符串 "slave",它表示这个服务器的角色是从服务器。
-
数组的第 2 个元素和第 3 个元素记录了这个从服务器正在复制的主服务器的 IP 地址和端口号。
-
数组的第 4 个元素是主服务器与从服务器当前的连接状态,这个状态的值及其表示的意义如下:
-
"none":主从服务器尚未建立连接。
-
"connect":主从服务器正在握手。
-
"connecting":主从服务器成功建立了连接。
-
"sync":主从服务器正在进行数据同步。
-
"connected":主从服务器已经进入在线更新状态。
-
"unknown":主从服务器连接状态未知。
-
-
数组的第 5 个元素是从服务器当前的复制偏移量。
以下是一个从服务器执行 ROLE 命令的例子:
127.0.0.1:12345> ROLE
1) "slave" --这是一个从服务器
2) "127.0.0.1" --主服务器的IP地址
3) (integer) 6379 --主服务器的端口号
4) "connected" --主从服务器已经进入在线更新状态
5) (integer) 1765 --这个从服务器的复制偏移量为1765