签到成功

知道了

CNDBA社区CNDBA社区

MemCached 背景知识说明

2016-09-06 00:33 2755 0 转载 Memcached
作者: dave


1    Memcached概念

    Memcache官网地址: http://www.memcached.org/,由LiveJournal的Brad Fitzpatrick开发,是一个免费开源的,高性能的,具有分布式对象的缓存系统,它可以用来保存一些经常存取的对象或数据,保存的数据像一张巨大的HASH表,该表以Key-value对的方式存在内存中。 也称K-V 数据库或缓存数据库。


    memcached主要使用于存储实时性要求不是很高的信息。


2    Memcached特征


http://www.cndba.cn/dave/article/191

协议简单:

  它是基于文本行的协议,直接通过telnet在memcached服务器上可进行存取数据操作.

http://www.cndba.cn/dave/article/191


基于libevent事件处理:http://www.cndba.cn/dave/article/191

 Libevent是一套利用C开发的程序库,它将BSD系统的kqueue,Linux系统的epoll等事件处理功能封装成一个接口,与传统的select相比,提高了性能。

http://www.cndba.cn/dave/article/191


内置的内存管理方式:http://www.cndba.cn/dave/article/191http://www.cndba.cn/dave/article/191

  所有数据都保存在内存中,存取数据比硬盘快,当内存满后,通过LRU算法自动删除不使用的缓存,但没有考虑数据的容灾问题,重启服务,所有数据会丢失。


分布式:

  各个memcached服务器之间互不通信,各自独立存取数据,不共享任何信息。服务器并不具有分布式功能,分布式部署取决于memcache客户端。


http://www.cndba.cn/dave/article/191
http://www.cndba.cn/dave/article/191



3    使用场景

  例如一个电子商务网站,在网站的左侧会是商品的分类,中间是商品搜索结果的列表,可以查看商品信息和商家的基本信息和相关商家的信誉度信息。在这个场景下,因为一个商场的类别不会经常改变的。实时性不是很高,这样应该放到缓存中取的。


一般时候做法:http://www.cndba.cn/dave/article/191

    执行一次或者多次sql从数据库中查询全站的商品分类---->>递归形成你所需的分类tree------>>进入处理数据------->>显示到页面上。


在使用 memcached做法:

    第一次显示的时候:判断memcached缓存中是否有该分类----没有----->执行一次或者多次sql从数据库中查询全站的商品分类 ----->放到memcached中------->>进入处理数据------->>显示到页面


    第二次显示的判断memcached缓存中是否有该分类----有--->>-从memcached中取出数据-------->>进入处理数据------->>显示到页面

http://www.cndba.cn/dave/article/191

 

    当这个过程首次发生时,数据将正常地从数据库或其他数据源加载,然后再存储到 memcached 内。当下一次访问此信息时,它就会从 memcached 中取出,而不是从数据库加载,节省了时间和 CPU 循环。


但是要是数据中的数据改变怎么来更新memcached中的数据呢

    过程为:更新数据库中分类的信息------->找到memcached中key值,删除------>重新插入到你的memcached中就可以了

    memcached 内的存储操作是原子的,所以信息的更新不会让客户机只获得部分数据;它们获得的或者是老版本,或者是新版本。


用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2261
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:7972748次
  • 积分:4346
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ