Redis 使用 hash tag 插入到同一个哈希槽

Redis 面试 About 772 words

hash tag

使用{}大括号,指定key只计算大括号内字符串的哈希,从而将不同key名词的键插入到同一个哈希槽。

查看 key 对应的 hash slot

CLUSTER KEYSLOT testtag
CLUSTER KEYSLOT {testtag}
CLUSTER KEYSLOT mykey{testtag}
CLUSTER KEYSLOT mykey2{testtag}

输出

192.168.0.1:6380> CLUSTER KEYSLOT testtag
(integer) 764
192.168.0.1:6380> CLUSTER KEYSLOT {testtag}
(integer) 764
192.168.0.1:6380> CLUSTER KEYSLOT mykey{testtag}
(integer) 764
192.168.0.1:6380> CLUSTER KEYSLOT mykey2{testtag}
(integer) 764

设置

可以看到,并没有进行Redirected到其他slot

set mykey{testtag} abc
set mykey2{testtag} xyz

输出

192.168.0.1:6380> set mykey{testtag} abc
OK
192.168.0.1:6380> set mykey2{testtag} xyz
OK

说明

可以看到testtag{testtag}mykey{testtag}mykey2{testtag}计算得到的slot都为764,故可以使用{}来让Redis只计算大括号内的字符串的哈希槽,这样可以将不同的key放在同一个slot中。

注意

这些key的名词中还是带有{}符号的。

Views: 6,770 · Posted: 2021-03-19

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓


Today On History
Browsing Refresh