Java中各类Cache机制实现解决方案

转载 2012年03月22日 08:35:14
 在Java中,不同的类都有自己单独的Cache机制,实现的方法也可能有所不同,文章列举了Java中常见的各类Cache机制的实现方法,同时进行了综合的比较。

OSCache

OSCache是个一个广泛采用的高性能的Java EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。

OSCache有以下特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API--OSCache API给你全面的程序来控制所有的OSCache特性。

永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。

Java Caching System

JSC(Java Caching System)是一个用分布式的缓存系统,是基于服务器的java应用程序。它是通过提供管理各种动态缓存数据来加速动态web应用。JCS和其他缓存系统一样,也是一个用于高速读取,低速写入的应用程序。动态内容和报表系统能够获得更好的性能。

如果一个网站,有重复的网站结构,使用间歇性更新方式的数据库(而不是连续不断的更新数据库),被重复搜索出相同结果的,就能够通过执行缓存方式改进其性能和伸缩性。

EHCache

EHCache是一个纯Java的在进程中的缓存,它具有以下特性:快速,简单,为Hibernate 2.1充当可插入的缓存,最小的依赖性,全面的文档和测试。

JCache

JCache是个开源程序,正在努力成为JSR-107开源规范,JSR-107规范已经很多年没改变了。这个版本仍然是构建在最初的功能定义上。

ShiftOne

ShiftOne Java Object Cache是一个执行一系列严格的对象缓存策略的Java lib,就像一个轻量级的配置缓存工作状态的框架。

SwarmCache

SwarmCache是一个简单且有效的分布式缓存,它使用IP multicast与同一个局域网的其他主机进行通讯,是特别为集群和数据驱动web应用程序而设计的。SwarmCache能够让典型的读操作大大超过写操作的这类应用提供更好的性能支持。 SwarmCache使用JavaGroups来管理从属关系和分布式缓存的通讯。

TreeCache/JBossCache

JBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改善性能。缓存数据被自动复制,让你轻松进行JBoss服务器之间的集群工作。JBossCache能够通过JBoss应用服务或其他J2EE容器来运行一个MBean服务,当然,它也能独立运行。

JBossCache包括两个模块:TreeCache和 TreeCacheAOP。TreeCache --是一个树形结构复制的事务处理缓存。TreeCacheAOP --是一个“面向对象”缓存,它使用AOP来动态管理POJO(Plain Old Java Objects)

注:AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。

WhirlyCache

Whirlycache是一个快速的、可配置的、存在于内存中的对象的缓存。它能够通过缓存对象来加快网站或应用程序的速度,否则就必须通过查询数据库或其他代价较高的处理程序来建立。

Java中各类Cache机制实现解决方案

来源:http://dev.yesky.com/177/11217677.shtml 2010-04-16 09:29作者:天极网开发频道出处:天极网软件频道责任编辑:郑重   在Ja...

Linux服务器Cache占用过多内存导致系统内存不足最终java应用程序崩溃解决方案

问题描述 Linux内存使用量超过阈值,使得Java应用程序无可用内存,最终导致程序崩溃。即使在程序没有挂掉时把程序停掉,系统内存也不会被释放。 找原因的过程 这个问题已经困扰我好几个月...

Linux服务器Cache占用过多内存导致系统内存不足最终java应用程序崩溃解决方案

http://blog.csdn.net/u014740338/article/details/66975550 问题描述 Linux内存使用量超过阈值,使得Java应用程序无...
  • bluetjs
  • bluetjs
  • 2017年11月17日 20:44
  • 71

Java Cache Line 伪共享及解决方案

伪共享问题本质:多个变量被cpu加载在同一个缓存行中,当在多线程环境下,多个变量被不同的cpu执行,导致缓存行失效而引起的大量的缓存命中率降低。缓存一致性协议MESI协议中,每个CPU的Cache控制...
  • xx_yTm
  • xx_yTm
  • 2016年11月15日 17:42
  • 818

Android开发各类常见错误解决方案

本文属于个人平时项目开发过程遇到的一些问题,记录下来并总结解决方案,希望能帮到大家解决问题,有些问题的解决方案是在StackoverFlow上找到的,建议大家遇到问题多去上面找,基本上都能找到解决方案...
  • jxnk25
  • jxnk25
  • 2016年09月05日 13:53
  • 817

Cocos2d-x android项目移植——各类bug及常见问题解决方案全集

http://blog.csdn.net/xujiezhige/article/details/8644978 在学习IOS项目如何移植到Android的项目过程中,相信很多初学者会遇到各种...

Android源码编译make的各类错误解决方案汇总

问题: You are attempting to build with the incorrect version of java.  Your version is: java version "...

针对C#调用OutLook发送邮件模块出现的各类问题解决方案

最近Tony小编在VS2003+Office 2010的环境下编写了一个使用OutLook发送邮件的功能(具体模块代码参见本人之前文章),在模块从无到有,从测试到收尾的过程中遇见很多错误和异常,那么下...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中各类Cache机制实现解决方案
举报原因:
原因补充:

(最多只允许输入30个字)