Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/redis-command-client-pause.html

Redis CLIENT PAUSE 命令

Redis 服务器 Redis 服务器


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

命令格式

CLIENT PAUSE timeout

可用版本:>=2.9.50

时间复杂度:O(1)

该命令执行如下:

  • 它会停止处理所有来自一般客户端或者 pub/sub 客户端的命令。但是和 slaves 的交互命令不受影响。
  • 因为它会尽快返回 OK 给调用者,所以 CLIENT PAUSE 不会被自己暂停。
  • 当指定的超时时间结束,所有的客户端都被解除阻塞,查询缓存里积累的所有命令都会被处理。

使用场景

当该命令可以可控的将客户端从一个 Redis 实例切换至另一个实例。比如,当需要升级一个实例时,管理员可以作如下操作:

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

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

从 Redis 3.2.10/4.0.0 开始,此命令还可以防止在客户端暂停期间将 keys 过期。不仅从客户端角度无法写入,还是从内部操作的角度来看,数据集保证是静态的。

命令返回值

命令返回 OK,超时设置无效,则返回错误。

Redis CLIENT LIST 命令用于返回所有连接到 Redis 服务器的客户端相关信息。 ...
Redis CLIENT ID 命令返回当前连接的 ID。 ...
Redis CLIENT KILL 命令关闭一个指定的连接。 ...
Redis CLIENT GETNAME 命令返回当前连接由 CLIENT SETNAME 设置的名字。如果没有用 CLIENT SETNA ...
Redis CLIENT SETNAME 命令为当前连接分配一个名字。这个名字会显示在 CLIENT LIST 命令的结果中,用于识别当前正 ...