Memcached缓存框架
开发基于BS模式的程序,都有报表模块,那么如何开发报表模块。
1.定时发布报表数据到指定的临时表(可能是定时任务)
2.用户通过HTTP请求后台,访问临时表,查询报表数据
3.增加memcached缓存,再次访问是直接访问缓存。
====================================================================================================
基于事件机制,异步的
可以很好的支持水平的扩容,各个节点直接不会相互通信
Memcached主要的cache机制是LRU(最近最少用)算法+超时失效 :一种内存的模拟的数据结构-链表
====================================================================================================
memcached原理:基于内存的缓存分布式系统,基于libevent(epoll)或者的事件机制,保证非阻塞的网络IO,内部数据结构采取链表,Hash索引。内存管理图:分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合)
memcached根据收到的数据的大小,选择最适合数据大小的slab(图2)。 memcached中保存着slab内空闲chunk的列表,根据该列表选择chunk, 然后将数据缓存于其中
看到这里,总结Memcahed有两点:对于内存的管理基于LRU进行管理,对于内存的分配测试基于上述图,减少内存碎片。同时多个Memcached之间不可通信,实现memcahed的
分布式,基本在客户端实现,采用特定的分配算法。(大部分的内存管理基本都是这种方式比如数据库等)
参考:http://kb.cnblogs.com/page/42731/
redis,ECCAHED等
最新文章
- Java开发的几个注意点
- 防御CSRF的方法有哪些(一) HTTP 头中自定义属性并验证 CSRF跨站域请求伪造攻击
- chart.js插件生成折线图时数据普遍较大时Y轴数据不从0开始的解决办法[bubuko.com]
- 学习SQLite之路(三)
- lightoj 1014
- CentOS 更新yum源
- intelij idea
- 解决IE10以下对象不支持“bind”属性或方法
- oracle中backup模式
- 克隆git仓库中的一个分支
- dojo省份地市级联之地市Dao接口类(四)
- Delphi 获取DataSet传入参数后的SQL命令
- 【C语言编程练习】5.11 猴子吃桃子问题
- 修改教材P74 一行代码 NineNineTable.java, 让执行结果是个三角形
- C#生成Excel保存到服务器端并下载
- light1341 唯一分解定理
- 小甲鱼Python第十讲课后题---
- C#多线程和异步(一)——基本概念和使用方法
- js时间加减
- oracle数据库无法导出空表的问题解决(开始于oracle11g)