为什么Redis每2分钟就会给出“moved”错误

问题描述 投票:0回答:1

Redis 给出 MOVED 错误。我正在使用企业层作为 Azure Redis 缓存。使用下面的 Node.js 代码与其交互。

const redis = require('redis');

const client = redis.createClient({
    url: "dns",
    password: "***",
    connectTimeout: 100000
});
node.js azure redis redis-cluster
1个回答
1
投票

MOVED 消息意味着您正在查找的密钥不在集群中的特定分片上。它已被移动到另一个分片或从未在此分片上。通常,这是由 Node Redis 为您处理的,您只需取回您的值即可。

但是,需要告知 Node Redis 它正在连接到集群才能执行此操作。您可以通过调用

.createCluster
而不是
.createConnection
来完成此操作。有一个指南包含所有详细信息,但简短版本是:

import { createCluster } from 'redis';

const cluster = createCluster({
  rootNodes: [
    {
      url: 'redis://10.0.0.1:30001'
    },
    {
      url: 'redis://10.0.0.2:30002'
    }
  ]
})
© www.soinside.com 2019 - 2024. All rights reserved.