Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
639 views
in Technique[技术] by (71.8m points)

redis哨兵模式多主多从,怎么决定数据是存在哪个主节点的?

如果redis通过哨兵模式来部署集群,而且是多个主节点,想问下底层原理是怎么决定某个key-value存储在哪个主节点的。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

redis 集群上的每一个节点上,都抽象定义了以下两个概念,一个是 插槽(slot) ,你可以理解为是一个可以存储两个数值的变量,这个变量的取值范围是:0~16383。另一个就是 cluster,可以理解为一个集群管理的插件。每当我们的存取的 key 到达时,redis 会根据 crc16 算法计算出一个结果,然后把结果对 16384(0~16383 一共有 16384 个插槽) 求余数,这样每个 key 都会对应一个唯一的编号,这个编号就是在 0~16383 之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...