Heroku Redis 实例的 Redis 连接错误:Redis 连接失败 - 读取 ECONNRESET heroku 实例

Redis Connection Error with Heroku Redis Instance: Redis connection to failed - read ECONNRESET heroku instance

我有一个节点 js 应用程序。我使用来自 Heroku Redis 的 Redis(带有 async-redis 库)。 实际上,我有两个不同的 Heroku 帐户和两个由 Heroku 托管的不同 Node.js 应用程序。但除了 Redis 凭据外,这两个应用程序都是相同的代码。

我的应用程序中有趣的是我可以连接到第一个 Heroku Redis 实例。但是我无法连接到新的 Heroku Redis 实例。此外,我删除并创建了新实例,但它们不起作用。

错误是:

    Error: Redis connection to redis-123.compute.amazonaws.com:28680 failed - read ECONNRESET\n    
at TCP.onStreamRead (internal/stream_base_commons.js:162:27)

我的连接语句是这样的:

var redisPassword = 'password123';
var redisOptions = { host: 'redis-123.cloud.redislabs.com', port: '17371', auth_pass: redisPassword }
//var redisPassword = 'password123';
//var redisOptions = { host: 'redis-123.compute.amazonaws.com', port: '28680', auth_pass: redisPassword }

const client = redis.createClient(redisOptions);

client.on('connect', function () {
  console.log('Redis client connected');
});

client.on('error', function (err) {
  console.log('An error on Redis connection: ' + err);
});

正如我所见,Heroku Redis 实例唯一不同的地方。我的第一个 Redis 实例托管在 cloud.redislabs.com 但第二个实例(我无法连接)托管在 compute.amazonaws.com .

任何帮助将不胜感激。

我找不到根本问题。但是在 Chris 的评论之后,我再次检查了我使用的 Heroku Redis 插件。

Heroku Redis 为我提供了来自 amazonaws.com 的实例,Redis Enterprise Cloud 为我提供了来自 redislabs.com 的实例。当我添加和使用Redis企业云时,我可以连接到它。

但是Heroku Redis的连接问题对我来说还是个秘密

我遇到了这种情况,结果是通过 TLS 连接的“Heroku Redis”工作正常(以 rediss 开头的 url),一旦我调整了我的客户端代码以按照示例进行连接在 Heroku redis 文档中提供:

https://devcenter.heroku.com/articles/connecting-heroku-redis#ioredis-module

const Redis = require("ioredis");

const client = new Redis(process.env.REDIS_URL, {
    tls: {
        rejectUnauthorized: false
    }
});

其中 process.env.REDIS_URLrediss://<details>