Redis Cross Slot错误

时间:2016-06-26 19:57:22

标签: redis

我试图在Redis上一次插入多个键/值(一些值是集合,一些是哈希),我收到此错误:ERR CROSSSLOT Keys in request don't hash to the same slot

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

由于

2 个答案:

答案 0 :(得分:7)

在集群拓扑中,密钥空间被划分为散列槽。不同的节点将保留散列槽的子集。

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

  

Redis Cluster实现了可用的所有单键命令   Redis的非分布式版本。执行复杂的命令   像Set类型联合或交叉点这样的多键操作   实现以及密钥都属于同一节点。

您可以使用Hash Tags

强制密钥属于同一节点

答案 1 :(得分:1)

  

ERR CROSSSLOT请求中的键不会散列到同一插槽

如错误消息所示,只有所有键都属于同一插槽,操作才能成功。否则,您将看到此失败消息。即使两个/所有插槽都属于同一节点,也会看到此错误。该检查非常严格,根据代码,所有键都应哈希到同一插槽。