redis client连接数过多,大量空闲连接无法释放

redis client list 查看连接数

相关参数解释

参考官网:

Redis CLIENT LIST命令用于返回所有连接到服务器的客户端信息和统计数据。

返回值
bulk-string-reply: 一个独特的字符串,格式如下:

每个已连接客户端对应一行(以 LF 分割)
每行字符串由一系列 属性=值(property=value) 形式的域组成,每个域之间以空格分开。
下面是各字段的含义::

id: 唯一的64位的客户端ID(Redis 2.8.12加入)。
addr: 客户端的地址和端口
fd: 套接字所使用的文件描述符
age: 以秒计算的已连接时长
idle: 以秒计算的空闲时长
flags: 客户端 flag
db: 该客户端正在使用的数据库 ID
sub: 已订阅频道的数量
psub: 已订阅模式的数量
multi: 在事务中被执行的命令数量
qbuf: 查询缓冲区的长度(字节为单位, 0 表示没有分配查询缓冲区)
qbuf-free: 查询缓冲区剩余空间的长度(字节为单位, 0 表示没有剩余空间)
obl: 输出缓冲区的长度(字节为单位, 0 表示没有分配输出缓冲区)
oll: 输出列表包含的对象数量(当输出缓冲区没有剩余空间时,命令回复会以字符串对象的形式被入队到这个队列里)
omem: 输出缓冲区和输出列表占用的内存总量
events: 文件描述符事件
cmd: 最近一次执行的命令

优化方案

  • 1,通过ip排查对应的service服务,查看是否可以进行优化。
  • 2,config get timeout
    命令查看空闲超时时间
    0 默认不开启
  • 3,config set timeout 60
    配置默认空闲超时时间为60s
  • 4,config rewrit 保存
    可在redis.conf 配置文件中添加重启生效。(视情况)
    详细参数解释,参考文章。
posted @ 2021-08-17 14:35  fuhaizi  阅读(2954)  评论(0编辑  收藏  举报