【发布时间】:2022-02-18 16:37:11
【问题描述】:
我在 AWS 中创建了一个具有 2 个节点的 Redis MemoryDB 集群:
我使用 redis 节点库 v4.0.0 连接到它,如下所示:
import { createCluster } from 'redis';
(async () => {
const REDIS_USERNAME = 'test-username';
const REDIS_PASSWORD = 'test-pass';
const cluster = createCluster({
rootNodes: [
{
url: `rediss://node1.amazonaws.com:6379`,
},
{
url: `rediss://node2.amazonaws.com:6379`,
},
],
defaults: {
url: `rediss://cluster.amazonaws.com:6379`,
username: REDIS_USERNAME,
password: REDIS_PASSWORD,
}
});
cluster.on('error', (err) => console.log('Redis Cluster Error', err));
await cluster.connect();
console.log('connected to cluster...');
await cluster.set('key', 'value');
const value = await cluster.get('key');
console.log('Value', value);
await cluster.disconnect();
})();
但有时我会收到错误 ReplyError: MOVED 12539 rediss://node2.amazonaws.com:6379 并且无法从键中获取值。
你知道集群的配置或者使用redis节点库的代码有问题吗?
编辑: 我用ioredis 库尝试过,它可以工作,所以redis 库有问题。
Node.js 版本: 16
Redis 服务器版本: 6
【问题讨论】:
-
您确定您使用的网址是
redis而不是rediss吗? -
我使用
rediss。第二个s代表使用tls 连接。
标签: node.js amazon-web-services redis amazon-memory-db