踩坑(3)连接虚拟机Redis报错

问题描述:
Jedis jedis = new Jedis("192.168.163.128", 6379);
System.out.println(jedis.ping());
jedis.close();

运行后报错:

Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host 192.168.163.128:6379
	at redis.clients.jedis.Connection.connect(Connection.java:204)
	at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:100)
	at redis.clients.jedis.Connection.sendCommand(Connection.java:125)
	at redis.clients.jedis.Connection.sendCommand(Connection.java:120)
	at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:113)
	at redis.clients.jedis.BinaryJedis.ping(BinaryJedis.java:188)
	at com.demo.springbootdemo.method.TestSth.main(TestSth.java:14)
Caused by: java.net.SocketTimeoutException: connect timed out
	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
	at java.net.Socket.connect(Socket.java:606)
	at redis.clients.jedis.Connection.connect(Connection.java:181)
	... 6 more

Process finished with exit code 1

解决方式
1,修改redis配置文件
# bind 127.0.0.1 ::1
protected-mode no

注释掉bind 127.0.0.1 ::1
将protected-mode yes 改为 no

2,用修改后的配置文件打开Redis
3,关闭iptables或firewalld防火墙

iptables:

service iptables status
service iptables stop

firewalld:

systemctl status firewalld.service
systemctl stop firewalld.service

你可能感兴趣的:(踩坑记录,redis,java,数据库)