消息关闭
    暂无新消息!
两台机器:redis服务器A 192.168.10.9 端口 6379, 开发机器B
redis服务器A  ubutu ,防火墙已关闭

在开发机器B上:
(1)使用redis-cli -h 192.168.10.9 -a ldd  ,能够正常连接上
(2)使用Jedis连接,代码如下:

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"));
    }
}
         
便会出现异常:
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
        
     
 同一开发机器B,为什么使用redis-cli命令或telnet 192.168.10.9 6379 就能正常远程连接redis服务器,改用jedis就不行呢
按道理不是应该两个统一么。难道是jedis或java的问题?

7个回答

︿ 1
把相同的代码放到windows下˙执行毫无问题。看来是mac下的eclipse执行有问题。。

还是很郁闷,。

是为什么。
︿ 0
你的Java没问题,你的问题出现redis的配置文件上了,被禁止连接