我在tomcat web应用程序中使用Jedis连接到Elascticache Redis节点.该应用程序在白天被数百名用户使用.我不确定这是否正常,但每当我使用cloudwatch指标检查当前连接数时,我看到当前连接数增加而不会下降.
这是我的Jedis池配置:
public static JedisPool getPool(){
if(pool == null){
JedisPoolConfig config = new JedisPoolConfig();
config.setMinIdle(5);
config.setMaxIdle(35);
config.setMaxTotal(1500);
config.setMaxWaitMillis(3000);
config.setTestOnBorrow(true);
config.setTestWhileIdle(true);
pool = new JedisPool(config, PropertiesManager.getInstance().getRedisServer());
}
return pool;
}
这就是我总是使用池连接来执行redis命令的方法:
Jedis jedis = JedisUtil.getPool().getResource();
try{
//Redis commands
}
catch(JedisException e){
e.printStackTrace();
throw e;
}finally{
if (jedis != null) JedisUtil.getPool().returnResource(jedis);
}
使用此配置,计数当前超过200.我是否遗漏了应该丢弃或杀死未使用连接的内容?我将maxIdle设置为35,我预计当流量非常低时,计数会下降到35,但这种情况从未发生过.