【Redis】解决集群模式下 (error) CROSSSLOT Keys in request don‘t hash to the same slot
在启用集群模式的集群上创建由多密钥操作使用的密钥时,请使用哈希标签将密钥强制放入同一哈希槽中。当密钥包含“{...}”这种样式时,只有大括号“{”和“}”之间的子字符串得到哈希以获得哈希槽。例如,密钥{user1}:myset和{user1}:myset2, 因为只有括号内的user1被用作计算哈希,所以会哈希到到相同的哈希槽。172.31.62.135:6379> CLUSTER KEYS
·
在启用集群模式的集群上创建由多密钥操作使用的密钥时,请使用哈希标签将密钥强制放入同一哈希槽中。当密钥包含“{...}”这种样式时,只有大括号“{”和“}”之间的子字符串得到哈希以获得哈希槽。
例如,密钥 {user1}:myset 和 {user1}:myset2 , 因为只有括号内的user1被用作计算哈希,所以会哈希到到相同的哈希槽。
172.31.62.135:6379> CLUSTER KEYSLOT {user1}:myset
(integer) 8106
172.31.62.135:6379> CLUSTER KEYSLOT {user1}:myset2
(integer) 8106
172.31.62.135:6379> SUNION {user1}:myset {user1}:myset2
1) "some data for myset"
2) "some data for myset2"
现在两个集均哈希写入同一哈希槽,可以执行多密钥操作。
更多推荐
已为社区贡献4条内容
所有评论(0)