Jedis連接搭建在阿里雲服務器上的Redis,基於Linux(CentOS7)


Jedis連接搭建在阿里雲服務器上的Redis,基於Linux(CentOS7)

現象

Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host 127.0.0.1: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.yang.test.TestPing.main(TestPing.java:10)
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

產生原因

  • 機器之間網絡沒連通
  • ip和端口號不正確
  • 虛擬機中防火牆的原因
  • redis.conf 中bind 127.0.0.1 未用#注釋掉

注:由於redis本身默認處於保護模式,redis.conf注釋掉bind 127.0.0.1,會產生安全問題
解決:

  1. 將protected-mode yes中yes改為no
  2. 設置連接密碼,以下采用的是第二種

解決方法

1. 將Jedis連接的IP地址改為服務器公網IP

2. 修改redis.conf配置文件,設置redis訪問密碼

3. 退出redis-server

3. 打開redis.conf,注釋掉 bind 127.0.0.1,意味着所有客戶端訪問都可訪問,相當於 bind 0.0.0.0

4. 重啟redis-server

5. 連接redis-cli ,ping測試是否,連接成功

6. 阿里雲服務器配置安全組

7. 防火牆開放6379端口,不然無法訪問


8. 測試連接

9. 可以看到已經成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM