ReplyError:连接到Redis Cluster AWS

问题描述

我正在构建连接到Redis的Node.js应用。我在本地的redis实例中使用了此功能。现在,我正在使用ioredis从我的nodejs应用程序连接到AWS的k8s中的redis集群。这就是我所拥有的。

const Redis = require("ioredis");

this.redis = new Redis({
 port: 6379,// Redis port
 host: rhost,// Redis host
 password: password
});

this.redis.on('connect',() => {
 console.log('connected to redis')
})

好像connected to redis消息在日志中打印出来后,我已成功连接到集群。但是,每次尝试使用redis对象时,都会出现MOVED错误:

UnhandledPromiseRejectionWarning: ReplyError: MOVED 5011 <ip address>:6379
  at parseError (/node_modules/ioredis/node_modules/redis-parser/lib/parser.js:179:12)
  at parseType (/node_modules/ioredis/node_modules/redis-parser/lib/parser.js:302:14)

该连接在我的本地计算机上有效。但是在AWS中却没有。我尝试使用Redis.Cluster对象而不是Redis进行交换,但是在部署应用程序后,应用程序挂起并且连接事件永不触发。 closereconnecting事件似乎无限循环。

据我了解,这是集群中节点之间重定向的问题。主/从配置可能有问题。该错误是AWS中的配置问题吗?我是否需要使用Redis.Cluster对象而不是普通的Redis实例?解决MOVED错误的最佳方法是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)