Redis交叉插槽错误

shstlldc  于 2023-10-15  发布在  Redis
关注(0)|答案(3)|浏览(122)

我试图在Redis上一次插入多个键/值(有些值是集合,有些是哈希),我得到了这个错误:ERR CROSSSLOT Keys in request don't hash to the same slot
我不是从redis-cli,而是从一些Go代码,需要写入多个键/值到一个redis集群。我看到代码中的其他地方,多个键值是这样做的,我不明白为什么我的不工作。没有这个错误的哈希要求是什么?
谢谢

xzv2uavs

xzv2uavs1#

在集群拓扑中,键空间被划分为散列槽。不同的节点将持有散列槽的子集。
只有当所有涉及的键都在属于同一个节点的哈希槽中时,才允许涉及多个键的多键操作、事务或Lua脚本。
Redis集群实现了所有Redis非分布式版本中可用的单键命令。执行复杂的多键操作(如Set类型联合或交集)的命令也可以实现,只要键都属于同一个节点。
您可以使用哈希标记强制键属于同一个节点

gudnpqoy

gudnpqoy2#

ERR CROSSSLOT请求中的密钥不散列到同一个插槽
如错误消息所示,只有当所有键都属于同一个插槽时,操作才会成功。否则,您将看到此失败消息。即使两个/所有插槽属于同一节点,也会看到此错误。检查非常严格,根据代码,所有键都应该散列到同一个插槽。

ruarlubt

ruarlubt3#

我在通过AWS创建Redis集群时遇到了这个错误。当我禁用集群模式并使用一个节点运行Redis时,问题得到了解决

相关问题