一尘不染

Redis跨槽错误

redis

我试图在Redis上一次插入多个键/值(有些值是集合,有些是散列),但出现此错误:ERR CROSSSLOT Keys in request don't hash to the same slot

我不是redis- cli从某些需要将多个键/值写入Redis集群的Go代码中执行此操作。我看到代码中的其他地方以这种方式完成了多个键值,但我不明白为什么我的那个不起作用。没有此错误的哈希要求是什么?

谢谢


阅读 955

收藏
2020-06-20

共1个答案

一尘不染

在集群拓扑中,键空间分为哈希槽。不同的节点将持有哈希槽的子集。

仅当涉及的所有键都在属于同一节点的哈希槽中时,才允许涉及多个键的多个键操作,事务或Lua脚本。

Redis
Cluster实现了Redis的非分布式版本中所有可用的单键命令。只要键都属于同一个节点,就可以执行执行复杂的多键操作(如Set类型并集或交集)的命令。

您可以使用哈希标签强制键属于同一节点

2020-06-20