2015-01-26 73 views
1

我創建了一個新的Azure Redis緩存,這需要將近5分鐘才能完成創建。我使用的節點redis的包,這裏是我的代碼Nodejs Azure Redis緩存永遠掛起並讀取ECONNRESET錯誤

var client = redis.createClient(
    process.env.REDIS_PORT || 6379, 
    process.env.REDIS_HOST || '127.0.0.1' 
); 
if(process.env.REDIS_HOST) { 
    client.auth(process.env.REDIS_KEY); 
} 

是這些環境變量的設置是否正確,它只是掛了一會兒,並引發錯誤:Redis的連接mycache.redis.cache.windows .net:6380失敗 - 讀ECONNRESET。

現在,當我使用redis-cli嘗試連接redis-cli -h myhost -p 6380 -a the-auth-key時,它只是掛在命令行上,似乎沒有建立連接,但也沒有錯誤。它只是無所事事。如果我改變端口等,我會得到連接錯誤。所以我現在想知道我在做什麼錯了?

我在另一個地區創建了另一個redis緩存(我花了最大的99.9 SLA等)。仍然沒有連接是可能的。

任何幫助,將不勝感激。

回答

2

默認情況下,新緩存僅啓用SSL端點(端口6380)。某些客戶端(如redis-cli)不支持SSL。您需要檢查node-redis是否支持SSL。如果您嘗試使用不支持SSL的客戶端連接到SSL端口,您將得到erorrs。

如果您需要使用客戶端不支持SSL,有兩種選擇。一種是使用像'stunnel'這樣的應用程序在本地機器和Redis緩存之間創建SSL隧道。我知道stunnel適用於像redis-cli這樣的特殊場景,但我不確定它在生產負載下的性能如何。

第二個選項是啓用Azure門戶中的非SSL端點(端口6379)。但是,我們不建議將此用於生產緩存,因爲您的訪問密鑰和數據將全部以明文形式發送。

+0

這實際上是這個問題,該包目前不支持SSL,因爲我瞭解它。切換到選項#2,直到我有更好的選擇。謝謝 – 2015-01-28 10:56:09