paip.cache 缓存架构以及性能提升总结
paip.cache 缓存架构以及性能提升总结
1 缓存架构以及性能(贯穿读出式(LookThrough) 旁路读出式(LookAside) 写穿式(WriteThrough) 回写式(CopyBack)1
2 Cache的分级体系设计(L1—L3,mem>file)以及性能... 2
3 Cache分类架构(业务cache);提升性能... 2
4 Cache应该设置多大... 2
5 内存以及文件缓存(Ehcache,,Oscache)2
6 Memcache. 3
7 EhCache 总结使用... 3
8 PHP Cache缓存机制与文件缓存原理... 5
9 参考... 5
作者Attilax 艾龙, EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attila
1 缓存架构以及性能(贯穿读出式(Look Through) 旁路读出式(Look Aside) 写穿式(Write Through) 回写式(Copy Back)
在增加了Cache之后,便存在数据在Cache及存储之间如何存取的问题。读写各有2种方式。
贯穿读出式(LookThrough)
该方式将Cache隔在调用者与存储之间,调用者对存储的所有数据请求都首先送到Cache,由Cache自行在自身查找。如果命中,则切断调用者对主 存的请求,并将数据送出;不命中,则将数据请求传给存储。该方法的优点是降低了调用者对存储的请求次数,缺点是延迟了调用者对存储的访问时间。
旁路读出式(LookAside)
在这种方式中,调用者发出数据请求时,并不是单通道地穿过Cache,而是向Cache和存储同时发出请求。由于Cache速度更快,如果命中,则 Cache在将数据回送给调用者的同时,还来得及中断调用者对存储的请求;不命中,则Cache不做任何动作,由调用者直接访问存储。它的优点是没有时间 延迟,缺点是每次调用者对存储的访问都存在,这样,就占用了一部分总线时间。
写穿式(WriteThrough)
任一从调用者发出的写信号送到Cache的同时,也写入存储,以保证存储的数据能同步地更新。它的优点是操作简单,但由于存储的慢速,降低了系统的写速度并占用了总线的时间。
回写式(CopyBack)
为了克服贯穿式中每次数据写入时都要访问存储,从而导致系统写速度降低并占用总线时间的弊病,尽量减少对存储的访问次数,又有了回写式。它是这样工作的:数据一般只写到Cache,这样有可能出现Cache中的数据得到更新而存储中的数据不变(数据陈旧)的情况。但此时可在Cache 中设一标志地址及数据陈旧的信息,只有当Cache中的数据被再次更改时,才将原更新的数据写入存储相应的单元中,然后再接受再次更新的数据。这样保证了 Cache和存储中的数据不致产生冲突
2 Cache的分级体系设计(L1—L3,mem>file)以及性能
Cache分级结构的主要优势在于,对于一个典型的一级缓存系统的80%的申请都发生在内部,只有20%的申请是与外部打交道。而这20%的外部申请中的80%又与二级缓存打交道。因此,只有4%的申请定向到存储中。
一级Cache的容量, 使 性能随之成正比例地提高,还需设置二级Cache。直到L3 Cache。
不同的缓存使用不同的框架。。L1cache一般可用编程语言内部hashmap来实现...L2使用本地cache 框架,,L3 使用远程cache..
3 Cache分类架构(业务cache);提升性能
比如mysql一系列小缓存组成的 。比如表缓存,记录缓存,key缓存,权限缓存等 。
4 Cache应该设置多大
Cache与存储的空间比为4:1000,即128kB Cache可映射32MB数据;256kB Cache可映射64MB。在这种情况下,命中率都在90%以上
5 内存以及文件缓存(Ehcache,, Oscache)
以上就是内存级别的缓存,但是很多情况下是满足不了企业应用的,大数据量的缓存肯定 还是要保存到文件,这个时候光用JDK来实现就比较复杂了,这里当然要用到第三方开源框架来实现了,,推荐还是与,,hibernate采用了 Ehcache做为其缓存机制默认实现,Oscache没深入研究,但是Ibatis推荐的缓存为这个。
为什么要缓存,无非就是节省访问时间已经大并发量带来的访问上资源的消耗,这个资源有软资源和硬资源,做java的几乎每天都在有意识或者无意识的跟缓存打交道,最常见的缓存,Connection Pool,还有IOC其实也算一个。
6 Memcache
7 EhCache 总结使用
for (int n = 0; n < 20; n++) {
System.out.println(" nowsize:" + n);
String f = filex.read("c:\\main.dmg", "gbk");
String string = "v" + f + n;
SoftReference sr=new SoftReference (string);
// ObjectWrap ow=new ObjectWrap();
// ow.item=sr;
cache.put(new Element("key" + n, sr));
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
System.out.println("ff");
// cache.flush();
//System.out.println("---------" +cache.get("key2").getValue());
=============== ehcache.xml============
<ehcache>
<diskStore path="/atitmpdir"/>
<!--java.io.tmpdir
maxElementsInMemory:内存中最大缓存对象数。
· maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大。
开启diskPersistent功能,只要使用的是CacheManager单例模式,下一次启动的时候就会调用上一次运行的缓存。因为我们每次重启程序,谁也不希望之前的缓存会消除,所以,这个功能是针对,当项目DOWN掉的时候,缓存依旧存在,项目开启后,继续引用缓存,不必要重新写入
-->
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="10"
overflowToDisk="true"
diskPersistent="true"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
<cache name="mycache"
maxElementsInMemory="30"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="500"
overflowToDisk="true"
diskPersistent="true"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>
8 PHP Cache缓存机制与文件缓存原理
PHP Cache缓存机制与文件缓存原理 - derrck - 博客园.htm
9 参考
ehcache常用API整理 - 李哥在javaeye - ITeye技术网站.htm
Ehcache和MemCached比较分析 - 踏雪无痕 - 博客频道 - CSDN.NET.htm
ehcache memcache redis 三大缓存男高音 - 滴水穿石,厚积薄发 - 博客频道 - CSDN.NET.htm
ehcache参数简介 - 天道酬勤 - 博客频道 - CSDN.NET.htm
ehcache常用API整理 - 李哥在javaeye - ITeye技术网站.htm
EHcache的配置与使用 - 小梦想的小脚印的日志 - 网易博客.htm.lnk
Ehcache缓存配置 - mgoann的专栏 - 博客频道 -CSDN.NET.htm
Java缓存框架 EhCache - liudaoru - 悟 - ITeye技术网站.htm
oscache ehcache oscache与ehcache的区别 - hjm4702192的专栏 - 博客频道 - CSDN.NET.htm
oscache 与 ehcache的对比 - kissjava的专栏 - 博客频道 -CSDN.NET.htm
【EhCache】Java缓存框架使用EhCache结合Spring AOP - OPEN 开发经验库.htm
关于JCS,OSCache, EHCache这三个缓存方案? -CSDN论坛 -CSDN.NET.htm
缓存之ehcache 之使用 - Java - 学习交流 - 私塾在线 - 只做精品视频课程服务.htm.lnk
paip.cache 缓存架构以及性能提升总结相关推荐
- 英特尔核显驱动hd630_跳票数年,英特尔10nm终现身:重新定义晶体管架构,性能提升超15%...
SuperFin是英特尔10nm最大的亮点,它是FinFET结构的升级版.英特尔将增强型FinFET晶体.Super MIM(金属-绝缘体-金属)电容器相结合,打造了全新的SuperFin,能够提供增 ...
- 和x86同时代的计算机语言指令集,x86指令集同频性能提升
x86近5000条指令,迄今为止最复杂的指令集.这里不研究CISC & RISC,也不考虑process制程变化,主要是看最近几代IA架构对于同频率下性能的提升. x86指令集nasm文档 h ...
- DotNET企业架构应用实践-系统架构与性能-缓存技术与ORM中的缓存查询技术
系列回顾 在前面的文章DotNET企业架构应用实践-系统架构与性能-理论依据及相关做法一文中我介绍了系统性能优化的理论做了一个概括的介绍,也简单的介绍了性能优化的过程及相关的技术关注点或者说是做法. ...
- 10倍,BoostKit鲲鹏全局缓存3大创新技术助力Ceph性能提升
摘要:本文从四个方面阐述了BoostKit鲲鹏全局缓存技术,该技术针对Ceph开源存储方案存在的痛点,采用三大创新技术,有效的提高了Ceph的性能,最高可以将Ceph性能提升10倍. 本文分享自华为云 ...
- 云硬盘架构升级和性能提升详解
云盘为云服务器提供高可用.高可靠.持久化的数据块级随机存储,其性能和数据可靠性尤为重要.UCloud根据以往的运营经验,在过去一年里重新设计了云盘的底层架构,在提升普通云盘性能的同时,完成了对NVME ...
- WP Super Cache和W3 Total Cache缓存插件性能总结
WP Super Cache和W3 Total Cache缓存插件都致力于让你的wordpress速度更快,响应更及时.哪一款缓存插件更适合优化我们的WP站点呢?我用了两款插件,谈下体会: 缓存插件很 ...
- 【嵌入式】CPU性能提升:Cache机制
CPU性能提升:Cache机制 Cache机制是什么: Cache是CPU的缓存机制,用于提高CPU的运行效率 为什么需要Cache机制: CPU在自己的工作上是很快的,可以到达GHz频率上; 但需要 ...
- 麒麟软件发布全球首个ARM架构测试报告,ARM全新CPU架构Cortex-A77发布:性能提升20% 麒麟还能用吗?...
2018年对于手机处理器行业来说是兴奋的一年,基于ARM Cortex-A76 CPU架构设计的麒麟980.骁龙855等7nm处理器在性能上取得了长足进步,并成为2019年旗舰手机的主力芯片. 伴随着 ...
- 微服务架构 性能提升_如何通过无服务器架构提高性能
微服务架构 性能提升 by Domenico Angilletta 通过多梅尼科·安吉列塔(Domenico Angilletta) 如何通过无服务器架构提高性能 (How to boost your ...
- AI算力霸主诞生!英伟达发布首款安培架构GPU,性能提升20倍
来源:雷锋网 由于疫情缘故,本该在今年3月英伟达(NVIDIA)GTC 2020上发布的安培(Ampere)架构曝光多次却一直未发布. 5月15日,英伟达CEO黄仁勋发布了英伟达新一代GPU架构安培, ...
最新文章
- warnings.warn(f“Pass {args_msg} as keyword args. From version
- laravel CURD ORM
- 转 -- 推荐几本云计算的经典书籍
- 这个需求的目的是什么?
- css z-index
- 新华三的背景_开放融合创新:新华三全力支撑运营商5G赋能百业
- 什么是决定计算机内部寄存器,问题解答之 计算机中寄存器定义,分类
- PPT设计的数据图表化表现
- XML学习之做过的实验——实验三
- 计算机维修的感想,电脑维护心得
- 发现了个神奇的图片压缩工具
- 服务器系统自检可以关吗,1366电脑服务器开机自检肿么关闭
- 如何在Python中使用Rest API
- 广发信用卡联名南航,申卡这样操作
- matlab的积分函数
- ES6(ECMASript 相关介绍,ECMASript 6 新特性---let,const关键字,变量的解析赋值,模板字符串,箭头函数,rest参数,spread扩展运算符,Symbol)
- 使用winsw发布接口服务
- 如何去掉万恶的wps屏保
- HTML5创建热点区域
- ROS SMACH个人学习记录