redis中的hash tag

在集群模式下,如果lua脚本同时操作多个key,可能会出现:CROSSSLOT Keys in request don't hash to the same slot的错误。
这种情况下,可以通过{...},来指定多个key使用相同的内容进行hash,例如:user:{123}:usernameuser:{123}:email就会用123去hash,保证落到同一个slot,也就是可以在单个机器上进行原子操作。
https://github.com/redis/redis/blob/5dc631d880eea750d394651d70822ffabe13caae/src/cluster.c#L75

patternHashSlot

https://github.com/redis/redis/blob/5dc631d880eea750d394651d70822ffabe13caae/src/cluster.c#L51

keyHashSlot

posted @ 2023-12-18 15:15  yghr  阅读(205)  评论(0)    收藏  举报