memcached 实现分布式数据存储



 

1         通过设置特效key前缀来实现分布,基本上可以实现memcachedkey的一对多关系,好处在与不会混淆

如: 1 号服务器  192.168.1.1

2 号服务器  192.168.1.2

     如果 缓存键 en 开头的就存在 1

          缓存键 ch 开头的就存在2

 

2         根据余数计算分散:

 

就是“根据服务器台数的余数进行分散”。求的键的整数hash ,再除以服务器台数,根据余数来选择服务器

 

缺点:余数计算的方法简单,数据的分散性也相当优秀,但也有其缺点。那就是当添加或者移除服务器时,缓存重组的代价相当的巨大。添加服务器后,余数就会产生巨变,这样就无法获取与保持时相同的服务器,从而影响缓存的命中率。

 

 

 



 

3         consistent  hashing

  首先求出memcached 服务器的(节点)的哈希值,并将其分配到 0-232 的圆上。然后用同样的方法求出存储数据键的哈希值,并映射到圆上。然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上,如果超过232 任然找不到服务器,就会保存到第一台memcached服务器上



 

 

 

从上图状态可以看出,添加一台memcached 服务器。余数分布式算法由于保存键的服务器会发生巨大的变化而影响命中率,蛋consistent hashing中,只有在continuum上增加服务器的地点 逆时针方向的第一台服务器上的键会受到影响

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值