读《大型网站技术架构:核心原理与案例分析+李智慧》记二

Memcached分布式缓存集群

  1. 最简单的方法是通过路由算法可以实现余输Hash:用服务器是数目除与缓存数据Key的hash值,如key为7,有3台服务器,那么余数就是1,由此可见访问编号为1的服务器(编号从0开始)。
    由于key是随机产生的,这样对于整个服务器集群来说访问压力是相对平均的
    上述方法有一个问题:如果新加了2台缓冲服务器,那么7除于5就等于2,本来在缓存服务器一中有缓存数据,可是由于新加缓存服务器导致没有命中(需要到数据库中查找)。
    命中率为(1-(n/n+m)):n为原有数目,m为新增数目。这样命中率在明显不合适
  2. 分布式缓存的一致性hash算法
    实现原理:先构建一个长度为0-2^32的整数环(这个环被称为一致hash环),更加节点名称的hash值将缓存服务器节点放置在这个hash环上,然后更加需要查找数据key计算hash值,在顺序查找服务器的hash,匹配与需要查找数据的hash值最近的服务器hash值
    产生问题:当一部分原来需要访问缓存服务器1的,现在访问缓存服务器3,但是缓存0与缓存2的数据负载压力不变,不符合负载一致性原则
  3. 增加一个虚拟层(计算机的任何问题都可以通过增加一个虚拟层来解决)。
    将每台物理缓存服务器虚拟为一组虚拟缓存服务器,将虚拟服务器的hash值放置在hash环上,key在环上先找到虚拟服务器节点,在得到物理服务器的信息

这三种方法现在只是看懂了第一种,望如果看了这书的人不吝赐教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值