Redis版本:3.2.0
Jedis版本:2.8.1
下面是我连接redis的java代码:
public class TestRedis {
public static void main(String[] args) {
String host = args[0];
int port = Integer.parseInt(args[1]);
try (Jedis jedis = new Jedis(host, port)) {
System.out.println("Connected to jedis " + jedis.ping());
} catch(Exception e){
e.printStackTrace();
}
}
}
我在安装了redis的机器上运行这个程序。公网IP地址为192.168.1.57
如果我提供host=“localhost”和port =“6379”作为参数,那么我就可以成功连接到redis。
然而,如果我在参数中给予host=”192.168.1.57“和port =“6379”,我最终会得到以下异常:
redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused
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 TestRedis.main(TestRedis.java:14)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at redis.clients.jedis.Connection.connect(Connection.java:158)
... 6 more
请帮帮我...
1条答案
按热度按时间knpiaxh11#
有几个设置会影响这一点:bind和protected-mode。它们共同为新安装提供安全基线。
在
redis.conf
文件中找到以下内容并注解掉:在前面加上一个
#
:或者,如果你不想注解掉它,你也可以添加你的
eth0
/em1
接口的IP到它,像这样:此外,除非您使用密码安全,否则您还必须通过更改以下内容来关闭保护模式:
收件人:
请确保阅读相关文档并了解这两个更改的安全含义。
完成这些更改后,重新启动redis。