Memcached (一)

3.1.1 什么是Memcached

Memcached是一个免费开源的、高性能的、具有分布式内存对象的缓存系统,它通过减轻数据库负载加速动态Web应用。最初版本由LiveJournal的Brad Fitzpatrick在2003年开发完成。目前全世界很多用户都在使用它来构建自己的大负载网站或提高自己的高访问网站的响应速度。Memcache是这个项目的名称,而Memcached是服务器端的主程序文件名。

缓存一般用来保存一些经常存取的对象或数据(例如,浏览器会把经常访问的网页缓存起来),通过缓存来存取对象或数据要比磁盘存取快很多。Memcache是一种内存缓存,把经常存取的对象或数据缓存在内存中,内存中缓存的这些数据通过API的方式被存取,数据就像一张大的HASH表,以key-value对的方式存在。Memcache通过缓存经常被存取的对象或数据,来减轻数据库的压力,提高网站的响应速度,构建速度更快的可扩展的Web应用。图3-1展示了Memcache和数据库协作的流程。

这个流程的具体逻辑如下:

1)检查客户端请求的数据是否在Memcache中存在,如果存在,直接把请求的数据返回,不再对数据进行任何操作。

2)如果请求的数据不在Memcache中,就去查询数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到Memcache中。

3)每次更新数据库(如更新、删除数据库的数据)的同时更新Memcache中的数据,保证Memcache中的数据和数据库中的数据一致。

 
图3-1 Memcache和数据库协作工作流程

4)当分配给Memcache内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加到期失效策略,失效的数据首先被替换掉,然后再替换掉最近未使用的数据。

原文  http://book.51cto.com/art/201202/314644.htm

猜你喜欢

转载自datum.iteye.com/blog/1926816
今日推荐