我是redis的新手,我對此啓動服務器tutorial。它的工作。然後我用用java連接的Redis寫代碼,那麼它的確定,是這樣的:Redis拋出有關「讀取超時」的錯誤
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//store data in redis list
jedis.lpush("tutorial-list", "Redis");
jedis.lpush("tutorial-list", "Mongodb");
jedis.lpush("tutorial-list", "Mysql");
但是,當我使用多線程推Redis的,它會拋出異常「讀超時」:
在 太陽在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 線程 「主要」 java.lang.reflect.InvocationTargetException 異常.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) 由:redis.clients。 jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException:讀超時在 redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:201) 在 redis.clients.util.RedisInputStream.readByte(RedisInputStream.java :40) 在redis.clients.jedis.Protocol.process(Protocol.java:141)在 redis.clients.jedis.Protocol.read(Protocol.java:205)在 redis.clients.jedis.Connection.readProtocolWithCheckingBroken (Connection.java:297) at redis.clients.jedis.Connection.getBinaryMultiBulkReply(Connection.java:233) at redis.clients.jedis.Jedis.keys(Jedis.java:185)at org.v11.redis_mongo_task.UpdateApp.jobDetail(UpdateApp.java: 23)在 org.v11.redis_mongo_task.UpdateApp.main(UpdateApp.java:42)... 5更多 導致:java.net.SocketTimeoutException:讀取超時在 java.net.SocketInputStream.socketRead0(本機方法)在 java.net.SocketInputStream.read(SocketInputStream.java:150)在 java.net.SocketInputStream.read(SocketInputStream.java:121)在 java.net.SocketInputStream.read(SocketInputStream.java:107)在 redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:195) ... 13更多
redis發生了什麼?爲什麼它可以在單線程中工作?