缓存服务memcache

为什么要使用memcache?

在这里介绍memcache有点班门弄斧了请参考百度百科;https://baike.baidu.com/item/memcached/1625373?fr=aladdin和官网:http://memcached.org/

对比数据库mysql:

  1. mysql将数据写入到磁盘中,读取和写入比较缓慢。memcache将数据写入到内存中,提升效率,但是容易丢失
  2. 数据存储使用mysql,因为数据是真正的核心,在大并发的情况下以及大业务需要用到内存数据库
  3. 基本上memcache服务工作处于内存中,但不是永久,也会定期备份到磁盘中

注:常用的缓存服务(memcache。redis,MongoDB)

memcache有什么优点

  1. 对于用户来说网站访问快,会提升体验
  2. 对于网站来说,减少了数据库的压力,只用内存中没有数据才会去请求数据库
  3. 节省了一部分开支来省下数据库的配置要求

实际应用

  1. 作为数据库的前段缓存
  2. 作为集群后端的session会话保持

memcache分布式缓存:

注:memcache不支持分布式缓存,需要程序实现

  1. 所有MC服务器内存的内容都是不一样的。这些服务器内容加起来接近数据库的容量。比如1T的数据库,一台缓存数据库的内存没有那么大,因此分成10台缓存服务器。
  2. 通过在客户端(Web)程序或者MC的负载均衡器上用HASH算法,让同一内容都分配到一个MC服务器。
  3. 普通的HASH算法对于节点宕机会带来大量的数据流动(失效),可能会引起雪崩效应。
  4. 一致性HASH可以让节点宕机对节点的数据流动(失效)降到最低。
原文地址:https://www.cnblogs.com/ExzaiTin/p/7859347.html