在servlet中使用redis的问题

穷困潦倒 发布于 2016/03/31 17:47
阅读 1K+
收藏 0

Serverless 架构就不要服务器了?>>>

运行环境 windows 1核cpu 1g内存

以连接池的管理jedis:部分代码如下:

初始化:

static {
try {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxActive(MAX_ACTIVE);
config.setMaxIdle(MAX_IDLE);
config.setMaxWait(MAX_WAIT);
config.setTestOnBorrow(TEST_ON_BORROW);

jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);
} catch (Exception e) {
e.printStackTrace();
}
}

获取资源:

public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis resource = jedisPool.getResource();
return resource;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

返回资源:

public static void returnResource(final Jedis jedis) {
System.out.println("returnResource");
if (jedis != null) {
jedisPool.returnResource(jedis);
}
}

我在servlet中获取jedis实例(在try catch中),并在finally中调用returnResource返回资源。但用浏览器访问几次servlet对应的接口后,就会报“Could not get a resource from the pool”(MaxActive我设为1024,这应该是足够大的)。这是什么原因引起的?

加载中
返回顶部
顶部