Redis集群

原理
一致性hash算法:对2的32次方取模,将哈希值空间组织成虚拟的圆环
在这里插入图片描述
比如通过各个节点的主机编号进行hash,这样就能确定每台服务器在hash环上的位置

数据存储
将数据key使用相同的函数进行hash计算出hash值,如果一个新的数据通过hash运算在某个段上,通过顺时针行进,遇到的第一个节点,就是该数据要保存的节点。
在这里插入图片描述

某节点宕机
在这里插入图片描述
如图,nodeC宕机,原来要保存在C上的数据将顺时针保存在节点D中。
损失的数据就是该宕机节点逆时针所到达的上一个节点,即节点B和节点C中的数据将会损失。

新增节点
在这里插入图片描述
如图,新增节点X,此时节点ABD不受影响,对象C要保存的节点变为顺时针离得最近的节点X。影响的数据就是新增的X节点到逆时针到上一节点的数据,即X到B的数据。这些被影响的数据需要重新定位到X。

Hash环数据倾斜问题
在这里插入图片描述
数据倾斜就是,在服务器节点较少的时候,节点分布不均匀,大部分数据都存储在某一个节点中,导致该节点宕机,如上图中节点A
解决数据倾斜方法
引入虚拟节点
在这里插入图片描述
对每一个节点计算多个hash值,对每个算出的hash值位置放置虚拟节点,如在服务器IP后加标识编号。如上图将AB节点分别计算三个hash值,数据节点算法不,虚拟节点添加指针映射指向真实节点。这样节点少时,可以解决数据倾斜问题。
通常将虚拟节点设置为32个或者更大,这样数据分布就能非常均匀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值