浅析memcached

memcach的原理
 概念:Memcached是国外社区网站LiveJournal的开发团队开发的高性能内存缓存服务器,通过缓存数据库的结果,减少数据库访问次数,以提高动态WEB的速度,提高可扩展性;
 运行过程:浏览器首次访问读取的是数据库中的数据,返回的同时保存到memcached中;第二次以后直接访问memcached  
 数据存储方式:Slab allocation:基本原理是先把内存安装指定的大小分割成特定长度的块,并把内存相同的块分成组,以完全解决内存碎片问题;
        1、page:分配给slab的内存空间,默认是1M,分配给slab之后,根据slab的大小分配成chunk;
        2、chunk:存储数据的内存空间
                      3、class:特定大小的chunk的分组
       memcached收到数据后选择最合适的chunk缓存数据,memcached中保存着空闲的chunk列表,根据该列表选择chunk缓存数据;
              slab的缺点:由于是分配了固定大小的内存,因此无法充分利用内存,所以比如在128字节的内存中存储100字节的数据,剩下的28个字节的内存就浪费了。
 数据过期方式:Lazy Expiration +LRU
  Lazy Expiration (懒到期): memcached不会在内部监视数据是否过期,而是在get的时候查看数据上的时间戳,检查记录是否过期;因此memcached不会在过期监视上消耗CPU时间;
  LRU(最近最少使用机制):memcached优先使用过期记录的空间;但即使如此也会发生追加新纪录时空间不足的情况出现,此时就要使用最近最少使用机制来分配内存空间
                因此,当memcached的内存不足时而且又无法总class中获得内存时就会通过最近最少使用机制搜索记录,并将这些记录删掉,将内存分配给新增的记录。
  应用程序---》客户端程序分布式算法----》多个memcached;
        memcached的一些特性和限制:
  memcached中保存的数据量没有限制,只要内存足够;
  memcached最大内存使用是2G,要使用更多的内存可以分多个端口开启多个memcached进程
  最大30天的数据过期时间,设置为永久的也会在这个时间过期;
  最大键长是250个字节,超过该值无法存储;
  单个item的最大长度是1MB,超过1MB的数据不予存储;他是默认的slab大小
  最大连接数是200,最大软连接数是1024

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值