今天在window远程连接到Linux中的Redis,出现了超时SocketTimeoutException: connect timed out
首先,先描述一下问题:
public class TestPing {
public static void main(String[] args) {
Jedis jedis=new Jedis("192.168.255.136",6379);
System.out.println(jedis.ping());
} }
上面是测试代码,下面是报错信息:
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out
at redis.clients.jedis.Connection.connect(Connection.java:164)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:80)
at redis.clients.jedis.Connection.sendCommand(Connection.java:100)
at redis.clients.jedis.Connection.sendCommand(Connection.java:95)
at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:93)
at redis.clients.jedis.BinaryJedis.ping(BinaryJedis.java:105)
at com.ithxc.redis.TestPing.main(TestPing.java:12)
Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at redis.clients.jedis.Connection.connect(Connection.java:158)
... 6 more
开始以为是连接超时,修改了timeout
Jedis jedis=new Jedis("192.168.255.136",6379,100000);
还是不行,看了网上的一些帖子,去查看了Linux的防火墙
[root@localhost bin]# firewall-cmd --state
running
发现防火墙开着,随后关闭了防火墙
[root@localhost bin]# systemctl stop firewalld.service
发现就可以了,输出结果PONG