首页 > 代码库 > Memcached缓存框架

Memcached缓存框架

开发基于BS模式的程序,都有报表模块,那么如何开发报表模块。

1.定时发布报表数据到指定的临时表(可能是定时任务)

2.用户通过HTTP请求后台,访问临时表,查询报表数据

3.增加memcached缓存,再次访问是直接访问缓存。

memcached原理:基于内存的缓存分布式系统,基于libevent(epoll)或者的事件机制,保证非阻塞的网络IO,内部数据结构采取链表,Hash索引。内存管理图:分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合)

memcached根据收到的数据的大小,选择最适合数据大小的slab(图2)。 memcached中保存着slab内空闲chunk的列表,根据该列表选择chunk, 然后将数据缓存于其中

 

 

看到这里,总结Memcahed有两点:对于内存的管理基于LRU进行管理,对于内存的分配测试基于上述图,减少内存碎片。同时多个Memcached之间不可通信,实现memcahed的

分布式,基本在客户端实现,采用特定的分配算法。(大部分的内存管理基本都是这种方式比如数据库等)

参考:http://kb.cnblogs.com/page/42731/