Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多次访问Redis Q时获取资源时出错_Java_Android_Redis_Socketexception_Jedis - Fatal编程技术网

Java 多次访问Redis Q时获取资源时出错

Java 多次访问Redis Q时获取资源时出错,java,android,redis,socketexception,jedis,Java,Android,Redis,Socketexception,Jedis,这是我用来从redis Q访问值的代码 Jedis jedis = null; try { int maxActive = 1000; int maxIdle = 5; int minIdle = 1; long maxWait = 5000; JedisPoolConfig config = new JedisPoolConfig (); config.setMaxActive (maxActive); config.setMaxIdle (maxIdle); config.setMinId

这是我用来从redis Q访问值的代码

Jedis jedis = null;
try
{
int maxActive = 1000;
int maxIdle = 5;
int minIdle = 1;
long maxWait = 5000;

JedisPoolConfig config = new JedisPoolConfig ();
config.setMaxActive (maxActive);
config.setMaxIdle (maxIdle);
config.setMinIdle(minIdle);
config.setMaxWait (maxWait);
config.setTestOnBorrow (false);
pool = new JedisPool (config, RedisServerURL) ;

jedis = pool.getResource();
jedis.getClient().setTimeoutInfinite();
redisQMesssage = jedis.rpop(RedisQ);
//my code           
}
catch (Exception e) 
{
e.printStackTrace();
}
finally{
pool.returnResource(jedis); 
pool.destroy();
}  
我有3个工作线程中的上述代码。我给3个工作线程打了40次电话(总共)。
很少有1/5次我收到错误“无法从池中获取资源(SocketTimeoutException:)”

堆栈跟踪是

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:22)
at Workers.Worker1.met1(Worker1.java:124)
at Workers.Worker1.work(Worker1.java:108)
at org.gearman.impl.worker.WorkerConnectionController$3.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)  

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out
at redis.clients.jedis.Connection.connect(Connection.java:124)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:54)
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1657)
at redis.clients.jedis.JedisPool$JedisFactory.makeObject(JedisPool.java:63)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)
at redis.clients.util.Pool.getResource(Pool.java:20)
... 6 more  

Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at redis.clients.jedis.Connection.connect(Connection.java:119)
... 11 more  

请帮帮我。

在我的Java应用程序中,我使用的是Jedis2.0.0.jar文件,redis服务器版本是2.4.13。是它造成了问题吗?你解决了吗?你能把答案贴出来吗?