解决redis中 Could not get a resource from the pool 异常

Could not get a resource from the pool 中文翻译:无法从池中获取资源
导致:redis的缓存崩溃

出现原因:1.最大链接数量超标,2.资源未回收

解决1方式:调大你的缓存配置参数

最小能够保持idel状态的对象数   
minIdle=500    
当池内没有返回对象时,最大等待时间    
maxWaitMillis=10000   

解决2方式:成功关闭连接,失败也要关闭连接*

 从你的代码你能清晰找到以下代码:
 jedisPool.returnBrokenResource(jedis); //异常释放资源方法returnBrokenResource
 jedisPool.returnResource(jedis);   //正常释放资源方法returnResource
 
 那么你的代码就是这样了:
  try{   } catch (Exception e) {
        returnBrokenResource(jedis);
        logger.error("I am error:{}", e);
    } finally {
        returnResource(jedis);
    }

版权声明:本文为qq_34103387原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。