Hash一致性算法

Redis的分片策略基于一致性Hash算法,旨在解决分布式集群中机器变动导致的数据迁移问题。该算法通过hash环和虚拟节点设计确保数据均衡分布,并维持单调性,即使在节点增减时也能尽量减少数据变化。此外,它还通过分散性和负载控制优化内存使用,避免服务器压力过大。
摘要由CSDN通过智能技术生成

redis 中分片的应用

在分布式集群中,对机器的添加删除,或者机器故障后自动脱离集群这些操作是分布式集群管理最基本的功能。如果采用常用的hash(object)%N算法,那么在有机器添加或者删除后,很多原有的数据就无法找到了,这样严重的违反了单调性原则。

Redis的分片底层原理:一致性hash算法

Hash一致性算法介绍

两大设计:

(1)hash环设计:非常大,从0到2^32(43亿个值),把对象(数据)和服务器映射到同一个哈希空间中;

(2)虚拟节点的设计:通过虚拟节点的引入,对象的分布就比较均衡了。

  1. 确定节点node的位置
  2. 对key进行hash运算.获取唯一的位置
  3. 之后顺时针找到最近的节点
  4. 之后链接节点进行set/get操作

在这里插入图片描述

平衡性

说明 : 为了解决数据分配不均,采用虚拟节点的方式实现数据的均衡(均衡性算法)
问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值