- 用法
-
CLIENT KILL 〈 旧格式 | 〈 [ ID client-id ] | [ [ ID client-id ] | ... ] [ TYPE normal | master | primary | slave | replica | pubsub ] | [ USER username ] | [ ADDR addr ] | [ LADDR laddr ] | [ SKIPME YES | NO ] | [ MAXAGE maxage ] | [ NAME name ] | [ IDLE idle ] | [ FLAGS flags ] | [ LIB-NAME lib-name ] | [ LIB-VER lib-ver ] | [ DB db ] | [ CAPA capa ] | [ IP ip ] 〉 [ 〈 [ ID client-id ] | [ [ ID client-id ] | ... ] [ TYPE normal | master | primary | slave | replica | pubsub ] | [ USER username ] | [ ADDR addr ] | [ LADDR laddr ] | [ SKIPME YES | NO ] | [ MAXAGE maxage ] | [ NAME name ] | [ IDLE idle ] | [ FLAGS flags ] | [ LIB-NAME lib-name ] | [ LIB-VER lib-ver ] | [ DB db ] | [ CAPA capa ] | [ IP ip ] 〉 ... ] 〉
- 复杂度
- O(N),其中 N 为客户端连接数
- 版本
- 2.4.0
- ACL 类别
- @connection, @admin, @dangerous, @slow
CLIENT KILL ADDR ip:port
。这与旧的三参数行为完全相同。CLIENT KILL LADDR ip:port
。终止所有连接到指定本地(绑定)地址的客户端。CLIENT KILL ID client-id [client-id ...]
。允许通过其唯一的ID
字段终止客户端。客户端ID
可以通过CLIENT LIST
命令获取。该过滤器支持一个或多个client-id
参数。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
。关闭所有比指定时长(以秒为单位)更旧的连接。CLIENT KILL FLAGS flags
。仅终止其标志字符串包含指定字符的客户端。如果未使用有效标志,则返回错误。CLIENT KILL NAME name
。终止具有指定名称的客户端。CLIENT KILL IDLE idle
。仅终止空闲时间至少为指定时长的客户端。CLIENT KILL LIB-NAME lib-name
。终止使用指定库名称的客户端。CLIENT KILL LIB-VER lib-version
。终止运行指定库版本的客户端。CLIENT KILL DB db
。终止在指定数据库 ID 上操作的客户端。CLIENT KILL IP ip
。终止具有指定源 IP 地址的客户端。CLIENT KILL CAPA capa
。终止具有指定能力的客户端。
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
或错误,而是返回被终止的客户端数量,该数量可能为零。
CLIENT KILL 和 Valkey Sentinel
当实例重新配置时,Valkey Sentinel 使用 CLIENT KILL 来终止客户端连接。此机制确保客户端与 Sentinel 重新建立连接,刷新其配置。
注意
由于 Valkey 的单线程特性,在客户端连接正在执行命令时无法终止它。从客户端的角度来看,连接永远不会在命令执行过程中关闭。但是,客户端只有在发送下一个命令时(并导致网络错误)才会注意到连接已关闭。
RESP2/RESP3 回复
以下之一
历史
版本 | 变更 |
---|---|
2.8.12 | 添加了新过滤器格式。 |
2.8.12 | 添加了 |
3.2.0 | 为 |
5.0.0 | 将 |
6.2.0 | 添加了 |
8.0.0 | 添加了 |
8.0.0 | 将 |
8.1.0 |
|
9.0.0 | 添加了 NAME、IDLE、FLAGS、LIB-NAME、LIB-VER、DB、CAPA 和 IP 过滤器。 |