客户端终止

Syntax
CLIENT KILL <ip:port | <[ID client-id] | [TYPE <NORMAL | MASTER |
  SLAVE | REPLICA | PUBSUB>] | [USER username] | [ADDR ip:port] |
  [LADDR ip:port] | [SKIPME <YES | NO>] | [MAXAGE maxage]
  [[ID client-id] | [TYPE <NORMAL | MASTER | SLAVE | REPLICA |
  PUBSUB>] | [USER username] | [ADDR ip:port] | [LADDR ip:port] |
  [SKIPME <YES | NO>] | [MAXAGE maxage] ...]>>
Available since:
2.4.0
Time complexity:
O(N) where N is the number of client connections
ACL categories:
@admin, @slow, @dangerous, @connection,

CLIENT KILL 命令用于关闭给定的客户端连接。此命令支持两种格式,旧格式:

CLIENT KILL addr:port

ip:port 应该与 CLIENT LIST 命令返回的一行匹配(addr 字段)。

新格式:

CLIENT KILL <filter> <value> ... ... <filter> <value>

使用新表单,可以根据不同的属性终止客户端,而不仅仅是根据地址。以下过滤器可用:

  • CLIENT KILL ADDR ip:port。这与旧的三参数行为完全相同。
  • CLIENT KILL LADDR ip:port. 杀死所有连接到指定本地(绑定)地址的客户端。
  • CLIENT KILL ID client-id. 允许通过其唯一的ID字段来终止客户端。客户端的ID可以通过CLIENT LIST命令获取。
  • CLIENT KILL TYPE type,其中type可以是normalmasterreplicapubsub之一。这将关闭指定类别中所有客户端的连接。请注意,被MONITOR命令阻塞的客户端被视为属于normal类别。
  • CLIENT KILL USER username. 关闭所有使用指定ACL用户名认证的连接,但如果用户名没有映射到现有的ACL用户,则返回错误。
  • CLIENT KILL SKIPME yes/no。默认情况下,此选项设置为yes,即调用命令的客户端不会被杀死,但将此选项设置为no将会导致调用命令的客户端也被杀死。
  • CLIENT KILL MAXAGE maxage. 关闭所有超过指定年龄的连接,以秒为单位。在 Redis v7.4 中添加。

可以同时提供多个过滤器。该命令将通过逻辑AND处理多个过滤器。例如:

CLIENT KILL addr 127.0.0.1:12345 type pubsub

是有效的,并且只会终止具有指定地址的pubsub客户端。目前,这种包含多个过滤器的格式很少有用。

当使用新表单时,命令不再返回OK或错误,而是返回被杀死的客户端数量,该数量可能为零。

CLIENT KILL 和 Redis Sentinel

Redis Sentinel 的最新版本(Redis 2.8.12 或更高版本)使用 CLIENT KILL 命令在实例重新配置时终止客户端,以强制客户端再次与一个 Sentinel 进行握手并更新其配置。

注释

由于Redis的单线程特性,无法在客户端执行命令时终止其连接。从客户端的角度来看,连接在命令执行过程中永远不会被关闭。然而,客户端只有在发送下一个命令时(并导致网络错误)才会注意到连接已被关闭。

RESP2/RESP3 回复

以下之一:

  • Simple string reply: 当以3个参数格式调用并且连接已关闭时,返回OK
  • Integer reply: 当以filter/value格式调用时,被杀死的客户端数量。

历史

  • 从 Redis 2.8.12 版本开始:新增了过滤器格式。
  • 从 Redis 版本 2.8.12 开始:ID 选项。
  • 从 Redis 版本 3.2.0 开始:在 TYPE 选项中添加了 master 类型。
  • 从Redis版本5.0.0开始:将slave TYPE替换为replica。为了向后兼容,仍然支持slave
  • 从 Redis 版本 6.2.0 开始:LADDR 选项。
  • 从 Redis 7.4.0 版本开始:MAXAGE 选项。
RATE THIS PAGE
Back to top ↑