说明:
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"