Facebook、Twitter、维基百科都在用的分布式缓存服务器Memcached简介

什么是Memcached

Memcached是国外社区网站LiveJournal的开发团队开发的高性能分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度,提高可扩展性。

Memcached 运行图

图0:Facebook、Twitter、维基百科都在用的分布式缓存服务器Memcached简介

谁在用Memcached

  • 国外:Yahoo, facebook, twitter, wiki等
  • 国内:新浪网,豆瓣网,开心网,搜狐,赶集网等

Memcached 特点

  • 基于C/S架构,协议简单
  • 基于libevent的事件处理机制
  • 自主内存存储处理
  • 基于客户端的Memcached分布式

自主内存存储方式

  • 数据存储方式:Slab Allocation
  • 数据过期方式:Lazy Expiration + LRU

Slab Allocation

图1:Facebook、Twitter、维基百科都在用的分布式缓存服务器Memcached简介

图2:Facebook、Twitter、维基百科都在用的分布式缓存服务器Memcached简介

Lazy Expiration

Memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。这种技术成为lazy expiration。Memcached不会在过期监视上浪费CPU时间。

LRU

Memcached会优先使用已超时的记录空间,但即使如此,也会发生追加新纪录时空间不足的情况。这时需要使用Least Recently Used(LRU)机制,删除最近最少使用的记录方式来分配空间。

基于客户端的Memcached分布式

图3:Facebook、Twitter、维基百科都在用的分布式缓存服务器Memcached简介

Memcached与PHP结合使用

图4:Facebook、Twitter、维基百科都在用的分布式缓存服务器Memcached简介

加载余下内容▼

相关文章:

;