ROLE
命令在主服务器或者从服务器上执行将产生不同的结果,以下两个小节将分别介绍这两种情况。
如果执行 ROLE
命令的是主服务器,那么命令将返回一个由三个元素组成的数组作为结果:
数组的第一个元素是字符串
"master"
,它表示这个服务器的角色为主服务器。数组的第三个元素是一个数组,它记录了这个主服务器属下的所有从服务器。这个数组的每个元素都由三个子元素组成,第一个子元素为从服务器的 IP 地址,第二个子元素为从服务器的端口号,而第三个子元素则为从服务器的复制偏移量。从服务器的复制偏移量记录了从服务器通过复制数据流接收到的复制数据数量,当从服务器的复制偏移量跟主服务器的复制偏移量保持一致时,它们的数据就是一致的。
如果执行 命令的是从服务器,那么命令将返回一个由五个元素组成的数组作为结果:
数组的第一个元素是字符串
"slave"
,它表示这个服务器的角色是从服务器。数组的第二个元素和第三个元素记录了这个从服务器正在复制的主服务器的 IP 地址和端口号。
数组的第四个元素是主服务器与从服务器当前的连接状态,这个状态的值及其表示的意思如下:
"connecting"
:主从服务器成功建立了连接;:主从服务器正在进行数据同步;
"connected"
:主从服务器已经进入在线更新状态;
数组的第五个元素是从服务器当前的复制偏移量。