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等
Memcached缓存框架的更多相关文章
- .NET缓存框架CacheManager在混合式开发框架中的应用(1)-CacheManager的介绍和使用
在我们开发的很多分布式项目里面(如基于WCF服务.Web API服务方式),由于数据提供涉及到数据库的相关操作,如果客户端的并发数量超过一定的数量,那么数据库的请求处理则以爆发式增长,如果数据库服务器 ...
- java 开源缓存框架--转载
原文地址:http://www.open-open.com/13.htm JBossCache/TreeCache JBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的 ...
- .NET缓存框架CacheManager---1、CacheManager的介绍
在我们开发的很多分布式项目里面(如基于WCF服务.Web API服务方式),由于数据提供涉及到数据库的相关操作,如果客户端的并发数量超过一定的数量,那么数据库的请求处理则以爆发式增长,如果数据库服务器 ...
- Java缓存框架
JBossCache/TreeCache JBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改善性能.缓存数据被自动复制,让你轻松进行Jboss服务器之间的集群工作 ...
- 在.NET项目中使用PostSharp,使用CacheManager实现多种缓存框架的处理
在前面几篇随笔中,介绍了PostSharp的使用,以及整合MemoryCache,<在.NET项目中使用PostSharp,实现AOP面向切面编程处理>.<在.NET项目中使用Pos ...
- C#开发微信门户及应用(48) - 在微信框架中整合CacheManager 缓存框架
在我们的很多框架或者项目应用中,缓存在一定程度上可以提高程序的响应速度,以及减轻服务器的承载压力,因此在一些地方我们都考虑引入缓存模块,这篇随笔介绍使用开源缓存框架CacheManager来实现数据的 ...
- 二、Memcached缓存穿透、缓存雪崩
二.Memcached缓存穿透.缓存雪崩 1. 缓存雪崩 可能是数据魏加载到缓存中,或者缓存同一时间大面积失效,导致大量请求去数据库查询的过程,数据库过载,崩溃. 解决方法: 1 采用加锁计数,使用合 ...
- NET缓存框架CacheManager在混合式开发框架中的应用(1)-CacheManager的介绍和使用
在我们开发的很多分布式项目里面(如基于WCF服务.Web API服务方式),由于数据提供涉及到数据库的相关操作,如果客户端的并发数量超过一定的数量,那么数据库的请求处理则以爆发式增长,如果数据库服务器 ...
- J2CACHE 两级缓存框架
概述 缓存框架我们有ehcache 和 redis 分别是 本地内存缓存和 分布式缓存框架.在实际情况下如果单台机器 使用ehcache 就可以满足需求了,速度快效率高,有些数据如果需要多台机器共享这 ...
随机推荐
- Use JAWS 14 in a VM
We were not able to run the JAWS 14 app in a Virtual Machine after the installation is completed, th ...
- ubunttu-sh: 1: pause: not found
old code: //in ubuntu OS system("pause"); error discription: : pause: not found right code ...
- 前端css规范
文章整理了Web前端开发中的各种CSS规范,包括文件规范.注释规范.命名规范.书写规范.测试规范等. 一.文件规范 1.文件均归档至约定的目录中(具体要求以豆瓣的CSS规范为例进行讲解): 所有的CS ...
- 关联容器map(红黑树,key/value),以及所有的STL容器详解
字符串或串(String)是由数字.字母.下划线组成的一串字符.一般记为 s=“a1a2···an”(n>=0).它是编程语言中表示文本的数据类型.在程序设计中,字符串(string)为符号或数 ...
- lets encrypt 申请nginx 泛域名
1. 安装certbot工具 wget https://dl.eff.org/certbot-auto chmod a+x ./certbot-auto 2. 申请通配符域名 ./certbot-au ...
- prisma 集成 pipelinedb测试
pipelinedb 是一个基于pg数据库开发的stream sql 数据库,和prisma 集成起来可以开发很 方便的stream 应用 使用docker 安装 项目初始化 prisma init ...
- Oracle C#处理时间类型的Insert
首先如果直接 parm.Value=DateTime.Now; insert into table (TheTime)Value(@parm); 执行sql就会报错 ----------- ...
- Python与机器学习
pandas里面的对于数据操作比如where,drop以及dropna等都会有一个属性:inplace,这个单词意思是原地,如果inplace=true代表数据本身要返回(原地数据也会被改变):如果i ...
- Oracle根据表的大小排序SQL语句
--按照数据行数排序select table_name,blocks,num_rows from dba_tables where owner not like '%SYS%' and table_n ...
- Vue基础汇总实践
1)双向绑定: <div id="app"> <p>{{message}}</p> <input v-model=" ...