Redis客户端忽略在其上设置的配置选项,并尝试连接到默认ip 127.0.0.1



在AWS中,我使用ElastiCache Redis服务器,并使用node作为backEnd和"promise redis";包装

这就是我尝试连接到redis服务器端点的方法

client = redis.createClient({
host: '**my redis primary endpoint**',
port: 6379
});

这工作了一段时间,但在添加了一些与redis无关的代码行后,它给了我这个错误

error: connect ECONNREFUSED 127.0.0.1:6379

它似乎试图连接到本地服务器,却忽略了我给他的主机端点

当我将端口更改为任何数字时,如6300

它给出了相同的错误,默认端口号太

error: connect ECONNREFUSED 127.0.0.1:6379

我很困惑,请帮帮我!!!!

这些"天才;更改了他们库中的连接这样一件重要的事情,甚至没有对此发出很好的警告。我已经对这样一个事实保持沉默,即当你在一百万个项目中的库已经编码时,做出这样的更改是犯罪行为。现在你需要这样连接:

const client = redis.createClient({
socket: {
host,
port
},
password
});

我建议您切换到ioredis库,有一个旧的api,只有客户端是通过新的Redis({old-config}(创建的

因为在这个旧库("redis"(中,出于某种原因,他们现在需要异步连接((来实现某些功能,而没有真正解释为什么、何时需要以及何时不需要。一半的代码对我有效,另一半则无效。所以,更好地使用这个:

let Redis = require('ioredis');
const client = new Redis({
host: '***',
port: ****,
password: '****'
});

确保主机密钥没有协议部分"http://";

client = redis.createClient({ 
host: '192.168.45.34', // don't use host: 'http://192.168.45.34'
port: 6379 
});

如果您在主机密钥中包含该协议,redis客户端默认使用localhost-127.0.0.1

相关内容

  • 没有找到相关文章

最新更新