關於Jedis連接redis出現問題


 環境說明:

redis服務器系統:ubuntu  

ip 192.168.10.9

port 6379

兩台電腦:一個作為專門的服務器,一個是開發環境,以下一頓操作皆基於開發環境。

  

就這樣的簡單的代碼連接redis服務器

import redis.clients.jedis.Jedis;

public class Test {
	public static void main(String[] args) {
		Jedis jedis = new Jedis("192.168.10.9");
		jedis.auth("ldd");
		jedis.set("age", "1");
	 System.out.println(jedis.get("age"));
	}
}

 但是卻出現了下面的異常: 

Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out
	at redis.clients.jedis.Protocol.process(Protocol.java:79)
	at redis.clients.jedis.Protocol.read(Protocol.java:131)
	at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:162)
	at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:72)
	at redis.clients.jedis.Connection.sendCommand(Connection.java:79)
	at redis.clients.jedis.Connection.sendCommand(Connection.java:75)
	at redis.clients.jedis.BinaryClient.auth(BinaryClient.java:499)
	at redis.clients.jedis.Jedis.auth(Jedis.java:1963)
	at testfinal.Test.main(Test.java:8)
Caused by: java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
	at java.net.SocketInputStream.read(SocketInputStream.java:170)
	at java.net.SocketInputStream.read(SocketInputStream.java:141)
	at java.net.SocketInputStream.read(SocketInputStream.java:127)
	at redis.clients.util.RedisInputStream.fill(RedisInputStream.java:109)
	at redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:45)
	at redis.clients.jedis.Protocol.process(Protocol.java:64)
	... 8 more

  重點是:用命令行客戶端就能正常連接。PS: 同一個電腦。

真的,需要研究一下原因。

不知道有沒有知道的朋友可以指點一二。

百度一下,有的說需要將超時時常設置長一點,但是我設置成100000也沒用。還是會報錯。錯誤這里沒有貼。

換成windows系統,便可正常執行。看來跟mac本身有關呀。

折騰了幾天。

真是醉了。

終於,找到了原因:

我的電腦開了代理。導致網絡不行。

吐了一口老血,漲了一點教訓。

不過找到原因了,很開心。

 


免責聲明!

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



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