redis client-pause命令

CLIENT PAUSE timeout

CLIENT PAUSE 是一个连接控制命令,用来挂起所有客户端连接一段时间(单位是毫秒)。

命令执行如下操作:

  • 停止处理所有待执行命令,包括来自普通和发布订阅模式的客户端。然而,与从服务器的连接会继续处理。
  • 这个命令总是给他的调用者返回OK,所以 CLIENT PAUSE 命令并不会挂起自己。
  • 当指定的时间走完,所有的客户端解除阻塞:会继续处理暂停期间所有客户端发送的并聚集在查询缓冲中的命令。

这个命令主要的使用场景是把客户端从一个redis实例切换到另一个redis实例。例如:一个Redis实例升级的例子:

  • 使用 CLIENT PAUSE 挂起所有客户端
  • 等待几秒钟,确保确保备服务器的复制流处理完毕。
  • 把其中的一个备服务器slave转变位主服务器master。
  • 重新配置客户端连接到新的主服务器master。

在事务块MULTI/EXEC中同时使用 CLIENT PAUSE 和 INFO replication 命令可以用来检查主从服务器的复制偏移量。这种方式可以阻塞客户端一段时间,以便被服务器有时间处理完所有复制流,给出准确的复制偏移。

*返回值

简单字符串: OK,或者timeout无效的情况下返回错误。