环境说明:java
redis服务器系统:ubuntu ip 192.168.10.9 port 6379 两台电脑:一个做为专门的服务器,一个是开发环境,如下一顿操做皆基于开发环境。
就这样的简单的代码链接redis服务器redis
import redis.clients.jedis.Jedis; public class Test { public static void main(String[] args) { Jedis jedis = new Jedis("192.168.10.9"); jedis.auth("ldd"); jedis.set("age", "1"); System.out.println(jedis.get("age")); } }
可是却出现了下面的异常: ubuntu
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out at redis.clients.jedis.Protocol.process(Protocol.java:79) at redis.clients.jedis.Protocol.read(Protocol.java:131) at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:162) at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:72) at redis.clients.jedis.Connection.sendCommand(Connection.java:79) at redis.clients.jedis.Connection.sendCommand(Connection.java:75) at redis.clients.jedis.BinaryClient.auth(BinaryClient.java:499) at redis.clients.jedis.Jedis.auth(Jedis.java:1963) at testfinal.Test.main(Test.java:8) Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:170) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.net.SocketInputStream.read(SocketInputStream.java:127) at redis.clients.util.RedisInputStream.fill(RedisInputStream.java:109) at redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:45) at redis.clients.jedis.Protocol.process(Protocol.java:64) ... 8 more
重点是:用命令行客户端就能正常链接。PS: 同一个电脑。windows
真的,须要研究一下缘由。服务器
不知道有没有知道的朋友能够指点一二。网络
百度一下,有的说须要将超时时常设置长一点,可是我设置成100000也没用。仍是会报错。错误这里没有贴。socket
换成windows系统,即可正常执行。看来跟mac自己有关呀。spa
折腾了几天。.net
真是醉了。命令行
终于,找到了缘由:
个人电脑开了代理。致使网络不行。
吐了一口老血,涨了一点教训。
不过找到缘由了,很开心。