redis "ERR max number of clients reached channel"问题解决

3 篇文章 0 订阅

1.描述

    连接redis发现1w的连接数被占满了,因为大量无效长连接没有被释放,即使我本地的服务停止了,但是redis端的连接仍然存在。

2.解决思路

   由于多个程序共用同一个redis,所以不能从客户端解决问题。只能在redis加超时限制,以清理无效连接。

3.命令介绍

127.0.0.1:6379> info clients    #查看连接数
connected_clients:9998
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0


##redis-cli命令控制行中获取客户端信息命令

127.0.0.1:6379> CLIENT LIST    #获取客户端列表
id=1828 addr=172.31.132.5:50582 fd=73 name= age=231 idle=51 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=1778 addr=192.168.201.144:46871 fd=22 name= age=317 idle=317 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=NULL
#-------------age:表示连接存在的时间,单位秒
#-------------idle:表示连接空闲时间,单位秒

127.0.0.1:6379> CLIENT SETNAME     #设置当前连接点redis的名称

127.0.0.1:6379> CLIENT GETNAME     #查看当前连接的名称

127.0.0.1:6379> CLIENT KILL ip:port     #杀死指定连接


127.0.0.1:6379> config get timeout  #查看超时连接
1) "timeout"
2) "0" #0表示不开启空闲清除

127.0.0.1:6379> config set timeout 600 #设置空闲清理时间 ,修改redis.conf中的timeout属性也行 

127.0.0.1:6379>SHUTDOUW   #关闭redis
redis-server  redis.conf   #启动redis


 

4.操作流程

    重启redis,连接数立马降下来。设置超时时间,可保证以后不会出现该问题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值