redis哨兵模式多主多从,怎么决定数据是存在哪个主节点的?
如果redis通过哨兵模式来部署集群,而且是多个主节点,想问下底层原理是怎么决定某个key-value存储在哪个主节点的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如果redis通过哨兵模式来部署集群,而且是多个主节点,想问下底层原理是怎么决定某个key-value存储在哪个主节点的。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
在
redis
集群上的每一个节点上,都抽象定义了以下两个概念,一个是插槽(slot)
,你可以理解为是一个可以存储两个数值的变量,这个变量的取值范围是:0~16383
。另一个就是cluster
,可以理解为一个集群管理的插件。每当我们的存取的key
到达时,redis
会根据 crc16 算法计算出一个结果,然后把结果对16384(0~16383 一共有 16384 个插槽)
求余数,这样每个key
都会对应一个唯一的编号,这个编号就是在0~16383
之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。