Nodejs Azure Redis缓存永远挂起并读取ECONNRESET错误

时间:2015-01-26 21:58:36

标签: node.js caching azure node-redis azure-redis-cache

我创建了一个新的Azure Redis缓存,这需要将近5分钟才能完成创建。我正在使用node-redis包,这是我的代码

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等)。但是,没有可能的联系。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

新缓存默认情况下仅启用SSL端点(端口6380)。某些客户端(如redis-cli)不支持SSL。您需要检查node-redis是否支持SSL。如果您尝试使用不支持SSL的客户端连接到SSL端口,您将会遇到错误。

如果您需要使用客户端不支持SSL,则有两种选择。一种是使用像stunnel'这样的应用程序在本地计算机和Redis缓存之间创建SSL隧道。我知道stunnel适用于像redis-cli这样的临时场景,但是我不确定它在生产负载下的表现如何。

第二个选项是在Azure门户中启用非SSL端点(端口6379)。但是,我们不建议将其用于生产缓存,因为您的访问密钥和数据都将以纯文本格式发送。