【问题标题】:AWS Elastic Cache Redis Cluster `MOVED XXXXX ip:6379` errorAWS Elasticache Redis 集群`MOVED XXXXX ip:6379` 错误
【发布时间】:2022-10-20 23:26:20
【问题描述】:

我正在尝试连接到 AWS Elasticache Redis 集群,但我一直得到这个,我仍然得到 Error MOVED 12218 ip:6379

以下是代码

https://www.npmjs.com/package/redis - redis: ^4.0.1

import {createClient} from "redis";
const client = createClient({url: "redis://xyz.abc.clustercfg.use2.cache.amazonaws.com:6379"});
await client.connect();
console.log("client connected");
console.log(await client.ping());

输出:

client connected
PONG

但是当我做await client.get(key)await client.set(key, value) 时,我得到了 MOVED 错误。

我什至关注了这个https://github.com/redis/node-redis/issues/1782,但我得到了同样的MOVED 12218 ip:6379 错误。

【问题讨论】:

  • 不是 JS 专家,但您需要以不同的方式连接到 Redis 集群。与我在这里的答案相同的基本逻辑 - stackoverflow.com/a/71101587/4800344 - 但是代码会有所不同。

标签: amazon-web-services redis node-redis elastic-cache


【解决方案1】:

我希望您在 aws 中尝试启用集群模式的 redis。

"redis": "^4.1.0".

我正在使用这个 redis 版本 如果是这样,那么您可以尝试以下代码

    const redis = require('redis');

    const client = redis.createCluster({
      rootNodes: [
        {
          url: `redis://${ConfigurationEndpoint}:${port}`,
        },
      ],
      useReplicas: true,
     });

【讨论】:

    【解决方案2】:

    只是一些信息。我意识到我设置了一个 Redis-Cluster Helm 图表,但我正在通过 Sentinel/Redis 设置与 Jedis 连接。一旦我将 Jedis 更改为与 JedisCluster 连接,这个错误就消失了。现在这是一个客户端,所以你的设置可能会有所不同,但有一些需要注意的地方。

    【讨论】:

      猜你喜欢
      • 2021-02-05
      • 1970-01-01
      • 2018-05-03
      • 2019-09-12
      • 2019-07-13
      • 2018-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多