Redis "max number of clients rea

2016-11-12  本文已影响0人  十三流

问题描述

在Django的websocket连接中,借用Redis实现消息订阅的功能,突然出现问题,websocket端连接不上服务器,在uwsgi日志中发现是握手中连接Redis出错,进而导致握手失败,日志

ConnectionError: max number of clients reached

解决办法

在查找资料后,得知主要有2个原因会导致出现此问题

打开Redis的配置文件,检查maxclients参数,发现为1000,客户端当前应该是不超过1000的,使用命令检查一下连接数

netstat -an|grep redis | wc -l
1001

居然有那么多连接,看来自己遇到的问题应该是第二种,应该是客户端的websocket断开后,代码逻辑中没有释放连接,导致运行一段时间后出现这个问题。

发现问题,解决的办法应该也很简单了
1,在websocket的connection lost事件中,释放redis
2,简单一点,给redis添加一个timeout时间,超时后自动释放,当然此方法不适合频繁的Redis连接,毕竟过一段时间Redis才会释放

上一篇 下一篇

猜你喜欢

热点阅读