1

我无法让我的应用程序在本地连接到远程 redis 集群。使用单个节点/连接非常简单:

ssh -f -N -L6379:localhost:6379 user@{{ remote_ip }}

然后可以通过本地6379端口直接连接redis。

但同样不适用于多节点集群设置。我尝试使用上述代码行为每个节点转发每个端口,6379, 6380, 6381, etc.但无法建立集群连接。我认为这是因为集群节点配置必须引用远程服务器的实际私有 IP,因此我的本地端口无法连接在一起。

这就是我连接到redis的方式:

var Redis = require('ioredis');

var host = ENV.MARKET_REDIS_HOST;
var ports = [ 0, 1, 2 ];
var nodes = [];

ports.forEach((port)=>{
     nodes.push({
         port: 6379 + port,
         host: ENV.MARKET_REDIS_HOST,
     });
});

var ms_redis = new Redis.Cluster(nodes);

ENV.MARKET_REDIS_HOST在 dev 中设置为 localhost(不起作用),在 prod 中设置为实际的私有 ip(起作用)

4

0 回答 0