CLIENT KILL

终止打开的连接。

语法

CLIENT KILL ] | [USER username] | [ADDR ip:port] | [LADDR ip:port] | [SKIPME ] | [MAXAGE maxage] [[ID client-id] | [TYPE ] | [USER username] | [ADDR ip:port] | [LADDR ip:port] | [SKIPME ] | [MAXAGE maxage] ...]>>

引入版本:2.4.0

复杂度摘要:O(N)

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

CLIENT KILL addr:port

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

新格式:

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

通过新的形式,可以通过不同的属性来杀死客户端,而不仅仅是通过地址来杀死客户端。请参阅下面的支持的过滤器列表。

可以同时提供多个过滤器。使用逻辑 AND 组合多个过滤器。

CLIENT KILL addr 127.0.0.1:12345 type pubsub

有效并且只会杀死具有指定地址的 pubsub 客户端。

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

可选参数

提供旧版 ip:port 参数以通过地址或以下一个或多个过滤器关闭客户端,这些过滤器可以组合起来选择要关闭的客户端。

ip:port

关闭给定地址的客户端。这是传统的单参数形式。

ID client-id

仅关闭具有给定唯一 ID 的客户端。

TYPE NORMAL | MASTER | SLAVE | REPLICA | PUBSUB

仅关闭给定类型的客户端。

USER username

仅关闭通过给定 ACL 用户身份验证的客户端。

ADDR ip:port

仅关闭从给定地址连接的客户端。

LADDR ip:port

仅关闭连接到给定本地(服务器)地址的客户端。

SKIPME YES | NO

是否跳过调用客户端(YES,默认)或允许它也关闭(NO)。

MAXAGE maxage

仅关闭早于给定年龄(以秒为单位)的客户端。

详细说明

CLIENT KILL 和 Redis Sentinel

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

说明

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

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动

返回值

RESP2

以下之一: * 简单字符串回复:当以 3 参数格式调用并且连接已关闭时,OK。 * 整数回复:以过滤器/值格式调用时,被杀死的客户端数量。

RESP3

以下之一: * 简单字符串回复:当以 3 参数格式调用并且连接已关闭时,OK。 * 整数回复:以过滤器/值格式调用时,被杀死的客户端数量。

资料来源:Redis 官方 CLIENT KILL 文档;中文内容参考 Redis 文档许可。