2013-08-20 47 views
1

有時我的node-redis客戶端需要很長時間才能初始連接到redis服務器。Node-redis非常長的初始連接

我登錄。對( '錯誤')。對( '端')。對( '連接')和。對( '準備好')事件在這裏:

Redis: storage#0 <localhost:6381> end 
Redis: error storage#0 <localhost:6381> [Error: Redis connection to localhost:6381 failed - getaddrinfo ENOTFOUND] 
/*... much of same errors, sometimes up to 5minutes ...*/ 
Redis: error storage#0 <localhost:6381> [Error: Redis connection to localhost:6381 failed - getaddrinfo ENOTFOUND] 
Redis: storage#0 <localhost:6381> connect 
Redis: storage#0 <localhost:6381> ready 

雖然它發生通常我可以使用redis-cli連接到redis服務器。

有沒有人有關於此的原因的任何想法?

+2

我不知道原因,但你可能想要使用127.0.0.1連接而不是本地主機,所以你避免了一個可能會失敗的DNS調用。 –

+0

謝謝,我會嘗試 –

+0

:(沒有任何改變:'Redis的:錯誤存儲#0 <127.0.0.1:6381> [錯誤:Redis連接到127.0.0.1:6381失敗 - 連接ECONNREFUSED]' –

回答

2

錯誤「[錯誤:Redis連接到本地主機:6381失敗 - getaddrinfo ENOTFOUND]」似乎指向地址解析問題。

因此,一個簡單的提議是使用127.0.0.1而不是localhost繞過對getaddrinfo的調用以及可能失敗的關聯DNS查詢。

127.0.0.1的結果稍有不同:仍然有錯誤,但是現在的消息是ECONNREFUSED,這意味着遠程Redis服務器可能沒有監聽提供的端口 - 或者連接超時設置得太低。