首页/数据/Redis 进阶速查/CLIENT KILL 断开问题连接
性能与排障129 条

CLIENT KILL 断开问题连接

CLIENT KILL 按地址、ID、类型或过滤条件断开连接,处理异常客户端、慢消费者与连接泄漏的常用手段。

Redis 进阶速查数据更新于 2026-10-13

CLIENT KILL 断开问题连接

CLIENT KILL 用于断开指定客户端连接:早期写法按地址匹配,较新版本支持按 ID、连接类型、用户名等过滤条件批量匹配,返回值是实际被断开的连接数。运维上它用来处理异常客户端、慢消费者和连接泄漏:先用 CLIENT LIST 看清对象,再用过滤条件精确断开。断开连接只是止血,导致异常的原因仍要回到客户端侧解决,否则同一现象会反复出现。

基本信息

按地址CLIENT KILL ADDR ip:port
按 IDCLIENT KILL ID 12345
按类型CLIENT KILL TYPE normal|pubsub|replica|master
其他过滤LADDR、USER、SKIPME,较新版本还有 MAXAGE
返回值受影响的连接数
查看命令CLIENT LIST [TYPE ...]
权限需要连接管理类权限

典型使用场景

  • 某个客户端写循环打满实例,临时断开保护整体可用性
  • 订阅连接缓冲堆积,按类型批量断开慢消费者
  • 连接泄漏排查时清理长期空闲的连接
  • 客户端版本异常频繁重连,按地址定位并断开
  • 演练中验证断连后业务的重连与降级逻辑
  • 运维脚本按条件清理测试环境遗留连接
  • 副本连接异常时按类型排查,确认是否影响复制
  • 发布前后清理旧版本客户端的长连接,推动版本收敛

定位与断开

定位与断开
redis-cli CLIENT LIST | head -5                     # 先看连接全貌
redis-cli CLIENT LIST TYPE pubsub                   # 只看订阅连接
redis-cli CLIENT KILL ID 12345                      # 按连接 ID 断开
redis-cli CLIENT KILL ADDR 10.0.0.5:54321           # 按地址断开
redis-cli CLIENT KILL TYPE pubsub SKIPME yes        # 批量断开订阅连接
redis-cli INFO stats | grep -E 'evicted_clients'    # 对照是否有服务端驱逐

过滤条件对照

过滤项取值用途
ADDR客户端地址精确断开单条连接
ID连接编号脚本化定位
TYPEnormal、pubsub、replica、master按角色批量清理
SKIPMEyes 或 no避免断开当前连接
批量断开前先跑一遍对应的 CLIENT LIST 预览对象,把过滤条件写错会直接伤到正常业务连接。
断开慢消费者只解决当下的内存与带宽压力,消费能力不足与重连退避缺失的问题仍要跟进。
按类型批量断开时记得带 SKIPME yes,避免把自己这条运维连接一起断掉,导致脚本中途失败。

易错点

  • 过滤条件写错批量断开正常连接,业务出现成片超时
  • 把断开当成最终方案,客户端重连后又继续堆积,问题周期性复发
  • 断开前没有预览对象,误杀了内部任务或副本的连接
  • 只看客户端报错不看服务端连接记录,定位不到具体是哪条连接
  • 脚本里用地址硬编码清理,实例迁移后误伤新环境

数据来源与参考

  • Redis 官方文档:CLIENT KILL 说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌