redis
redis分片集群中数据是怎么存储和读取的?
❒ redis分片集群引入了哈希槽的概念,redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分hash槽。
master1 0 ↔ 5460
master2 5461 ↔ 10922
master3 10923 ↔ 16383
set name itheima → CRC16计算name的hash值 → 666666%16384 = 11306 (master3)
set {aaa}name itheima → CRC16算法计算aaa的hash值 → 888888 % 16384 = 4152 (master1)
❒ redis分片集群引入了哈希槽的概念 ✔ redis 集群有 16384 个哈希槽 ✔ 将16384个插槽分配到不同的实例 ✔ 读写数据:根据key的有效部分计算哈希值,对16384取余(有效部分,如果key前面有大括号,大括号的内容就是有效部分,如果没有,则以key本身做为有效部分)余数做为插槽,寻找插槽所在的实例