连接管理命令是什么
连接列表命令输出当前所有客户端的明细:连接地址、空闲时长、最近执行的命令、所属连接库等;连接终止命令则按条件断开指定连接。两者配合是定位连接泄漏、清理异常客户端、以及在连接数打满时快速止血的手段。
基本信息
| 查看全部 | CLIENT LIST,可加类型参数筛选普通连接、发布订阅或副本连接 |
|---|---|
| 查看自身 | CLIENT INFO 返回当前连接的详情 |
| 断开连接 | CLIENT KILL 支持按连接号、按地址、按类型筛选 |
| 自我保护 | 批量断开时可用跳过自身的参数,避免把自己也踢掉 |
| 相关配置 | 最大连接数与空闲连接超时配合使用 |
典型使用场景
- 连接泄漏排查:找出空闲时间很长且持续增长的连接
- 连接数打满应急:定位异常来源并断开其连接,先恢复业务
- 阻塞客户端定位:找出长期阻塞在阻塞式命令上的连接
- 发布订阅连接核对:统计订阅连接数量,确认是否与预期一致
- 客户端升级核验:确认旧版本客户端已全部下线
示例
示例
CLIENT LIST # 列出全部连接明细
CLIENT LIST TYPE normal # 只看普通连接
CLIENT LIST TYPE pubsub # 只看订阅连接
CLIENT INFO # 当前连接自身信息
CLIENT KILL ID 12345 # 按连接号断开
CLIENT KILL ADDR 10.0.0.8:53211 # 按地址断开
CLIENT KILL TYPE pubsub SKIPME yes # 断开订阅连接但保留自己
redis-cli CONFIG GET maxclients # 对照上限判断是否已接近容量输出逐列读法
| 字段 | 含义 | 判读 |
|---|---|---|
| id 与 addr | 连接编号与对端地址 | 定位来源主机与进程 |
| age 与 idle | 连接存活秒数与空闲秒数 | 两者都大且持续增长即泄漏嫌疑 |
| cmd | 最近执行的命令 | 长期为阻塞类命令说明消费者卡住 |
| name 与 lib-name | 客户端自报名称与库信息 | 便于按应用维度统计连接 |
| db | 当前选择的库 | 确认业务是否误用多库 |
让客户端在建立连接时上报名称,能让连接明细按业务维度可读;这一条在排障时价值极高。
按类型批量断开连接会影响正常业务:执行前先用列表命令确认范围,并优先排除副本与订阅连接。