redis过一段时间连接不上
可能的原因:
1.连接资源使用完闲置没有释放,导致占用
解决命令:CONFIG SET timeout 30
对于闲置链接超过30秒的进行释放
2.最大连接数不够
解决命令:config set maxclients 10000
设置最大连接数为10000(默认值),根据需要设置自己的值
排查步骤:
查看已连接数:info clients
查看配置的最大连接数:config get maxclients
查看连接数明细
每个字段含义:
addr:客户端的地址和端口
fd:套接字所使用的文件描述符
idle:以秒计算的空闲时长
flags:客户端 flag
db:该客户端正在使用的数据库 ID
sub:已订阅频道的数量
psub:已订阅模式的数量
multi:在事务中被执行的命令数量
qbuf:查询缓冲区的长度(字节为单位, 0 表示没有分配查询缓冲区)
qbuf-free:查询缓冲区剩余空间的长度(字节为单位, 0 表示没有剩余空间)
obl:输出缓冲区的长度(字节为单位, 0 表示没有分配输出缓冲区)
oll:输出列表包含的对象数量(当输出缓冲区没有剩余空间时,命令回复会以字符串对象的形式被入队到这个队列里)
omem:输出缓冲区和输出列表占用的内存总量
events:文件描述符事件
cmd:最近一次执行的命令