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

Nodejs Azure Redis Cache hang forever and read ECONNRESET error

我创建了一个新的 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 等)。仍然无法连接。

如有任何帮助,我们将不胜感激。

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

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

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