Redis —— 集群原理
Redis —— 集群原理
为了存储海量数据,将海量数据以某种规则划分数据,分散存储在多个节点上(即是分片),采用一致性哈希算法分片。
一致性哈希算法
对2的32次方取模,将哈希值空间组织成虚拟的圆环
这种一个顺时针Hash虚拟圆环,当一台服务器不可用时,则只会影响到当前节点逆时针相邻的第一台服务器之间的数据,并且在者之间的数据,会被存储到不可用服务器顺时针相邻的第一次台服务器上,因此,做到了最小化损失数据的操作
一致性哈希运算的缺点
-
Hash环数据倾斜
一致性Hash算法在服务器节点很少的情况下,会发生数据倾斜(被缓存的对象,大部分会缓存在同一台服务器上) -
如何解决Hash环数据倾斜?
引入虚拟节点机制(即对每一个服务器节点计算多个Hash,每个计算结果节点,都放置一个子服务器节点,这个节点被称为虚拟节点)