1、问题描述:
今天项目运行时,突然报如下错误:
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
我的第一反应是jedis的连接池中没有可用连接了,直接把连接池jeidsPool连接数增大一下
但是一段时间之后,又开始报这个错误了,发现这种方式治标不治本。
2、解决方式:
之前我代码是这么写的:
RedisUtil.getJedisDb2().hmset(callId+".args",argsMap);
修改为:
Jedis jedis = RedisUtil.getJedisDb2();
try {
jedis.hmset(callId+".args",argsMap);
}catch (JedisConnectionException e){
e.printStackTrace();
System.out.println("连接redis服务器失败");
}finally {
if(jedis != null){
jedis.close();
}
}
每次使用完jedis实例之后,代码需要手动清理掉。以后自己使用jedis的时候,最好包装成一个工具方法,加上jedis.close(),因为原生的jedis方法直接使用,就会导致我这种错误出现。