redis报-ERR max number of clients reached错误

说明:

redis报max number of clients错误,可能是因为客户端接入太多,也是可能是因为系统最大文件描述符数过小。

redis连接池在关闭项目的时候,需要收回连接池,不然redis在开发的过程中,所有开发人员本地项目连接redis服务器,经常重启项目会累积很多不能释放的连接,

1.碰到因为客户端接入太多,可以通过修改redis.conf的maxclients XXXX,设置同一时间最大客户端连接数(默认0,表示不限制)来解决。

<bean id="jedisConfig" class="redis.clients.jedis.JedisPoolConfig"> 
	<property name="testWhileIdle" value="true"/>
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy">
	<constructor-arg ref="jedisConfig" />
	<constructor-arg value="localhost" />
	<constructor-arg type="int" value="6379" /> 
</bean>

其中destroy-method="destroy",是关闭web容器的时候,会调用连接池的destroy,关闭和redis的连接,就此隐藏两个月的问题终于解决了。

查看redis连接数

netstat -an|grep 6379|wc -l  

config get maxclients 可以查询redis允许的最大连接数

127.0.0.1:6379> config get maxclients 
1) "maxclients" 
2) "6000" 

猜你喜欢

转载自blog.csdn.net/u012045045/article/details/86249981