问题描述
我正在构建连接到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
进行交换,但是在部署应用程序后,应用程序挂起并且连接事件永不触发。 close
和reconnecting
事件似乎无限循环。
据我了解,这是集群中节点之间重定向的问题。主/从配置可能有问题。该错误是AWS中的配置问题吗?我是否需要使用Redis.Cluster
对象而不是普通的Redis
实例?解决MOVED错误的最佳方法是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)