如何在Jedis上连接服务器上的Redis
我们在首次使用Jedis连接服务器Linux上的Redis时,可能会遇到如下错误
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host xx.xx.xx.xx: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:116)
at redis.clients.jedis.BinaryClient.auth(BinaryClient.java:601)
at redis.clients.jedis.BinaryJedis.auth(BinaryJedis.java:2258)
at com.yao.test.PingTest.main(PingTest.java:8)
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:181)
... 6 more
那么可以从以下几点去检查是否正确设置
1、安全组设置开放6379端口
2、配置redis.conf
修改以下几项内容
- 将 bind 127.0.0.1 注释掉
- protected-mode no
- daemonize yes
- 设置redis密码 requirepass xxxxxx
3、Jedis中加入认证密码
Jedis jedis = new Jedis("",6379); //第一个参数输入服务器公网ip
jedis.auth("123456"); //输入config中配置的密码
System.out.println(jedis.ping());
这样就可以ping通了