CLIENT KILL

语法
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] ...]>>
可用版本
Redis 开源版本 2.4.0
时间复杂度
O(N),其中 N 是客户端连接数
ACL 类别
@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* 是 `normal`、`master`、`replica` 和 `pubsub` 之一。这会关闭指定类别中**所有客户端**的连接。请注意,阻塞在 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 回复

以下之一

  • 简单字符串回复:当以 3 参数格式调用且连接已关闭时返回 `OK`。
  • 整数回复:当以 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` 选项。
评价本页
返回顶部 ↑