SLAVEOF host port
可用版本: >= 1.0.0
时间复杂度:SLAVEOF host port
的复杂度为 O(N),其中N
为要同步的数据数量;SLAVEOF NO ONE
命令的复杂度为 O(1) 。
SLAVEOF 命令用于在 Redis 运行时动态地修改复制(replication)功能的行为。
通过执行 SLAVEOF host port
命令,可以将当前服务器转变为指定服务器的从属服务器(slave server)。
如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行 SLAVEOF host port
将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。
另外,对一个从属服务器执行命令 SLAVEOF NO ONE
将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。
利用“SLAVEOF NO ONE
不会丢弃同步所得数据集”这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。
返回值
总是返回 OK
。
代码示例
redis> SLAVEOF 127.0.0.1 6379
OK
redis> SLAVEOF NO ONE
OK
ROLE
可用版本: >= 2.8.12
时间复杂度: O(1)
返回实例在复制中担任的角色, 这个角色可以是 master
、 slave
或者 sentinel
。 除了角色之外, 命令还会返回与该角色相关的其他信息, 其中:
- 主服务器将返回属下从服务器的 IP 地址和端口。
- 从服务器将返回自己正在复制的主服务器的 IP 地址、端口、连接状态以及复制偏移量。
- 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) "slave"
2) "127.0.0.1"
3) (integer) 9000
4) "connected"
5) (integer) 3167038
Sentinel
1) "sentinel"
2) 1) "resque-master"
2) "html-fragments-master"
3) "stats-master"
4) "metadata-master"
网友评论