CLIENT PAUSE timeout

CLIENT PAUSE 是连接控制命令,它可以将所有客户端的访问暂停给定的毫秒数。

该命令执行如下:

  • 它会停止处理所有来自一般客户端或者pub/sub客户端的命令。但是和slaves的复制命令不受影响。

  • 因为它会立刻返回OK给调用者,所以CLIENT PAUSE 不会被自己暂停。

  • 当给定的时间结束,所有的客户端都被解除阻塞:这时所有客户端的查询缓存里积累的所有命令都会被处理。

CLIENT PAUSE 命令可以可控的将客户端从一个Redis实例切换至另一个实例。

比如,当需要升级一个实例时,管理员可以作如下操作:

  • 使用CLIENT PAUSE 暂停所有客户端
  • 等待数秒,让slaves 节点处理完所有来自master的复制命令
  • 将一个salve节点切换为 master
  • 重配客户端以来接新的 master 节点

可以在MULTI/EXEC中一起使用CLIENT PAUSE 和INFO replication以在阻塞的同时获取当前master的偏移量。用这种方法,可以检查slaves处理至给定的复制偏移节点,确保复制完整。

从 3.2.10 / 4.0.0 起,该命令也会停止过期和淘汰在暂停时期,保持数据处于静止不变的状态。

*返回值

字符串: OK 或者 error timeout is invalid。