【问题标题】:Nodejs Azure Redis Cache hang forever and read ECONNRESET errorNodejs Azure Redis Cache 永远挂起并读取 ECONNRESET 错误
【发布时间】:2015-01-26 21:58:36
【问题描述】:

我创建了一个新的 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 connection to mycache.redis.cache.windows.net:6380 failed - read ECONNRESET。

现在,当我使用 redis-cli 尝试与redis-cli -h myhost -p 6380 -a the-auth-key 连接时,它只是挂在命令行上,似乎没有建立连接,但也没有错误。它只是无所作为。如果我更改端口等,我会收到连接错误。所以我现在想知道我做错了什么?

我已经在不同的区域创建了另一个 redis 缓存计划(我采用了最大的,具有 99.9 SLA 等)。仍然无法连接。

任何帮助将不胜感激。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 这实际上是问题所在,据我了解,该软件包目前不支持 SSL。切换到选项#2,直到我有更好的选择。谢谢
    猜你喜欢
    • 2018-06-08
    • 1970-01-01
    • 2018-06-13
    • 2020-11-16
    • 2015-06-26
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    相关资源
    最近更新 更多