err max number of clients reached 解决办法

最近在开发的企业在线培训和考试系统,开发中用到redis缓存,由于第一次用遇到了不少问题。而且网上的资料都不是很正规统一,查看资料和问题都是很零散。

一个月以前,开发中redis出现了“err max number of clients reached”,项目启动失败。当时我重启了项目,修改了redis的最大连接数为无限制,以为问题很简单。

现在一个月以后,问题又出现了,项目组的开发人员项目都启动失败报错,我认为这个问题需要重视下,如果投产了,问题再出现就麻烦了。

在网上查看大量的资料,还是找不到解决办法。因为项目平时不报错,用了一个月左右的时间,问题再次出现,肯定是一个长期使用压力造成的问题。

最后和同事讨论,经同事提醒才发现是redis连接池在关闭项目的时候,需要收回连接池,不然redis在开发的过程中,所有开发人员本地项目连接redis服务器,经常重启项目会累积很多不能释放的连接,

代码如下:

[java]  view plain  copy
  1. <bean id="jedisConfig" class="redis.clients.jedis.JedisPoolConfig">   
  2.     <property name="testWhileIdle" value="true"/>  
  3. </bean>  
  4. <bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy">  
  5.     <constructor-arg ref="jedisConfig" />  
  6.     <constructor-arg value="localhost" />  
  7.     <constructor-arg type="int" value="6379" />   
  8. </bean>  

其中 destroy-method="destroy",是关闭web容器的时候,会调用连接池的destroy,关闭和redis的连接,就此隐藏两个月的问题终于解决了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值