我正面临一个问题,即由于超时而导致JedisConnectionException。我们是一个多线程环境,我们正在广泛使用redis。我们使用以下配置创建redis池,
JedisPoolConfig config = new JedisPoolConfig();
config.setTestOnBorrow(true); config.setMaxIdle(1000);
config.setMaxTotal(1000); config.setBlockWhenExhausted(true);
config.setMaxWaitMillis(180000); pool = new JedisPool(config,
getHost(), getPort());
每次使用后我们都会将资源释放回池中。 例外情况如下
redis.clients.jedis.exceptions.JedisConnectionException:无法获取 池中的资源 redis.clients.util.Pool.getResource(Pool.java:42)
引起: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException:拒绝连接 redis.clients.jedis.Connection.connect(Connection.java:142)at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:75)at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1724)at at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:65)at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868) 在 org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435) 在 org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363) 在redis.clients.util.Pool.getResource(Pool.java:40)...还有4个 引起:java.net.ConnectException:拒绝连接 java.net.PlainSocketImpl.socketConnect(本机方法)
有人可以建议吗?