*Redis CLIENT KILL 命令
关闭指定的客户端连接。
*语法
CLIENT KILL [ip:port] [ID client-id] [TYPE normal|master|slave|pubsub] [USER username] [ADDR ip:port] [SKIPME yes/no]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ip:port | String | 否 | 客户端地址(旧语法) |
| ID | Integer | 否 | 客户端 ID |
| TYPE | 标志 | 否 | 客户端类型 |
| USER | String | 否 | 用户名(ACL) |
| ADDR | String | 否 | 客户端地址 |
| SKIPME | yes/no | 否 | 是否跳过当前连接,默认 yes |
*返回值
| 条件 | 返回值 |
|---|---|
| 成功 | 关闭的客户端数量(Integer) |
| 未匹配 | 0 |
*时间复杂度
O(N),N 为客户端数量。
*示例
# 关闭指定 ID 的客户端
> CLIENT KILL ID 12345
(integer) 1
# 关闭所有 pubsub 客户端
> CLIENT KILL TYPE pubsub
(integer) 3
# 关闭指定地址
> CLIENT KILL ADDR 192.168.1.100:54321
(integer) 1
# 不跳过自己(危险)
> CLIENT KILL SKIPME no
(integer) 1
*常见错误
- SKIPME no:可能关闭自己当前连接。
*最佳实践
- 清理异常连接:关闭长时间空闲或异常的客户端连接。
*FAQ
Q: CLIENT KILL 会立即断开连接吗? A: 是。客户端会立即收到连接断开通知。