redis連接超時

今天在用jedis連接遠程的Redis時,拋出連接超時異常:connect timed out。具體信息如下:
  1. Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out  
  2.     at redis.clients.jedis.Connection.connect(Connection.java:142)  
  3.     at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:75)  
  4.     at redis.clients.jedis.Connection.sendCommand(Connection.java:83)  
  5.     at redis.clients.jedis.BinaryClient.set(BinaryClient.java:92)  
  6.     at redis.clients.jedis.Client.set(Client.java:23)  
  7.     at redis.clients.jedis.Jedis.set(Jedis.java:53)  
  8.     at com.ado.test.redis.RedisTest.main(RedisTest.java:10)  
  9. Caused by: java.net.SocketTimeoutException: connect timed out  
  10.     at java.net.PlainSocketImpl.socketConnect(Native Method)  
  11.     at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)  
  12.     at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)  
  13.     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)  
  14.     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)  
  15.     at java.net.Socket.connect(Socket.java:529)  
  16.     at redis.clients.jedis.Connection.connect(Connection.java:137)  
  17.     ... 6 more  

    經過確認,排除了幾種可能:

    1、服務器地址配置錯誤。(經確認,配置無誤。)

    2、redis連接數量過多。(經確認,沒有任何連接在redis服務器上。)

    查看jedis連接源碼,也沒發現有什麼異常,於是懷疑是redis主機的問題。使用telnet命令進行測試,發現也是連接不上。於是懷疑是redis服務器防火牆沒關閉。

    查看服務器防火牆狀態:

  1. service iptables status  


    關閉防火牆:

  1. service iptables stop  


    然後再進行連接,這次就很快連接成功了。問題解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章