memcached的环形算法-consistent hashing 算法

本文介绍了Memcached中的两种算法:取余算法和环形算法,并详细解析了环形算法的优势。当进行扩展时,环形算法仅影响部分客户端,显著减少数据库压力。

memcached一般两种算法,一种是取余算法,一种是环形算法。

取余算法本身存在一个缺陷是 扩展时候将会影响到所有的mem。客户端需要全部从数据库中读取数据,造成数据库瞬间压力过大。

 

而环形算法则只会影响到其中的一个客户端。

由于客户端是以key-value形式把数据存储到mem上。而此时hash算法把value映射到32位的key值上。32位key值意味着key是从0到2的31次幂。譬如你两台mem,则0到2的30次幂落在m1上,其余落在m2上。

 

假如现在要加入m3,则m1保持不变,可以将m2的一半分配给m3.这样只有m2一半的key对应的value需要重新从数据库中读取。实际上四分之一左右的数据需要重新读取。大大减少了数据库瞬间的压力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值