memcached总结

来源:互联网 发布:原唱伴唱切换软件 编辑:程序博客网 时间:2024/05/16 23:58

memcached作为一个基于文本的协议,主要特征有四个 

1、协议简单。文本行协议

2、基于libevent的事件处理方式。使用操作系统的libevent库,性能高

3、基于内存的数据存储方式。数据存储在内存中,容量达到指定值后,根据LRU算法删除不使用的缓存,会重启、断电会导致数据丢失。不能实现数据的持久化

4、不互相通信的分布式。分布式是在客户端实现,各个memcached不互相通信共享信息

memchached内存存储机制

slab allocation机制  基本原理:根据预定大小,把内存分割成指定大小的块,解决了内存碎片问题

          把分配的内存分割成各种尺寸的块(chunk),大小相同的块分成组(chunk的集合)

          已分配内存不会释放,可以重复使用

         

memcached删除机制  数据不会真正从memcached中消失,能有效利用资源

    lazy Expiration 
        memcached不会监视记录是否过期,而是在get时查看记录的时间戳,检验是否过期。lazy Expiration使memcached不会在过期监视上耗费cpu时间
    LRU: 从缓存中有效删除数据的原理
        当memcached的内存空间不足时,用LRU算法从最近未使用的记录中搜索,并将其空间分配给新的记录。新的记录覆盖掉原有的记录

memcached的分布式

        分布式是由客户端程序库来实现的,是memcached最大的特点。

        调用set方法时,客户端实现的算法根据key来决定保存数据的memcached服务器

        调用get方法时,客户端采用与保存数据相同的算法选择服务器。获取保存的值

    分布式算法

          1、取模法:一台服务器故障时,会造成所有缓存失效,不适用memcached分布式  

          2、一致性hash算法:首先求出memcached服务器的哈希值,并将其配置到1-2^32的圆上,然后用同样的方法求出存储数据的键的哈希值,并映射到圆上,然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。





     
    

0 0
原创粉丝点击