使用redis的client命令返回数据的含义

最近redis经常出现连接池满的问题,通过redis 的 client list命令查看返回数据,返回的数据样例为:

id=399784 addr=127.0.0.1:53818 fd=87 name= age=885 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=exec

id=399031 addr=127.0.0.1:35208 fd=56 name= age=10071 idle=8785 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=set

由于初次接触,不明白什么含义,特此做下记录:

  • 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: 最近一次执行的命令

通过了解各个字段的含义,看得出中间有很多空闲的空连接,导致连接池满了,所以设置redis的连接池中最大的空闲连接数,继续观察。

你可能感兴趣的:(redis,spring)