问题出现的现象: 长时间很频繁的对redis进行读或者写的操作时,会出现“Could not get a resource from the pool”的错误。 出现此错误后,“Jedis jedis = jedisPool.getResource()”中的jedisPool已经无法从连接池中再获取jedis资源对象, 就导致以后任何读或写redis的操作都无法实现。
问题解决方法: 最开始尝试去修改redis配置文件中的“maxTotal”连接池的最大连接数, 发现就算改成1000,也只不过是延长了此错误的出现时间而已,就表明修改配置与此问题无关。 然后开始猜测是不是之前调用redis的资源没有释放导致资源连接数一直在消耗,最终在每次调用完redis时加上手动去释放连接的代码,解决问题。