nosql缓存技术之memcached介绍、安装以及使用总结,三四个面试官轮流对你提问

分布式Memcached缓存服务架构

由于单台Memcached服务器的内存容量是有限的,并且单台也存在单点故障,因此,就需要将多个Memcached服务器组合起来提供服务,那么怎么组合效率才更高呢?

1.      cache服务使用常规负载均衡模式的问题

2.      分布式缓存集群

a)        Memcache支持分布式集群,其中方法之一就是在客户端应用程序上进行改造。例如:可以根据key适当进行有规律的封装,比如以用户为主的网站来说,每个用户都有 UserID,那么可以按照固定的id来进行提取和存取,如果1开头的用户保存在第一台memcache服务器上,以2开头的用户的数据保存在第二台 mecache服务器上,存取数据都按照UserID来进行相应的转换和存取。

但是这个有缺点,就是需要对UserID进行判断,如果业务不一致,或者其他类型的应用,可能不是那么合适,那么可以根据在iji的实际业务来进行考虑,或者去想更合适的方法

b)        在应用服务器上通过程序及URL_HASH,一致性哈希算法驱访问Memcached服务,所有Memcached服务器的地址池可以简单的配在每个程序的配置文件里。

c)        可以用Nginx的分支tengine实现对Mc的负载均衡,和普通web应用服务相比,这里的重点是调度算法,Mc服务一般会选择hash或一致性hash算法

i.             完整缓存,如果是多台就直接负载均衡。特点所有缓存数据都一样。百度的memcached TB 级别。一台机器的内存没那么大。就必须分布式。

ii.             热点缓存、分布式缓存

分布式缓存集群设计思想

1)  每一台MC服务器的内容都是不一样的,这些服务器内容加起来接近整个数据库的容量。

2)  通过在客户端程序或者MC的负载均衡器上用HASH算法,让同一内容都分配到一个MC服务器、

3)  普通的HASH算法对于节点宕机会带来大量的数据流动(失效),可能会引起雪崩效应

4)  一致性哈希算法(还可以带虚拟节点)可以让节点宕机对节点的数据流动(失效)降到最低。

分布式Memcached缓存集群调度算法

取模计算Hash

优点:简单、分散性优秀

缺点:添加/移除服务器时,缓存重组代价巨大,影响命中率

例:26个字母有三个节点增加一个节点,命中率下降了23%

  

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值