我无法让我的应用程序在本地连接到远程redis群集 . 使用单个节点/连接非常简单:
ssh -f -N -L6379:localhost:6379 user@{{ remote_ip }}
然后redis可以直接通过本地端口6379连接 .
但这同样适用于多节点群集设置 . 我尝试使用上面的代码行转发每个端口 6379, 6380, 6381, etc.
但是无法 Build 集群连接 . 我假设这是因为群集节点配置必须指向远程服务器的实际专用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(可行)