在NET中实现CACHE是件很容易的事在java中是如何实现的呢?有哪些解决方案呢?
归纳了下大概有下面这些方案
OSCache
OSCache是个一个广泛采用的高性能的JEE缓存框架OSCache能用于任何Java应用程序的普通的缓存解决方案
OSCache有以下特点
缓存任何对象你可以不受限制的缓存部分jsp页面或HTTP请求任何java对象都可以缓存
拥有全面的APIOSCache API给你全面的程序来控制所有的OSCache特性
永久缓存缓存能随意的写入硬盘因此允许昂贵的创建(expensivetocreate)数据来保持缓存甚至能让应用重启
支持集群集群缓存数据能被单个的进行参数配置不需要修改代码
缓存记录的过期你可以有最大限度的控制缓存对象的过期包括可插入式的刷新策略(如果默认性能不需要时)
官方网站
Java Caching System
JSC(Java Caching System)是一个用分布式的缓存系统是基于服务器的java应用程序它是通过提供管理各种动态缓存数据来加速动态web应用
JCS和其他缓存系统一样也是一个用于高速读取低速写入的应用程序
动态内容和报表系统能够获得更好的性能
如果一个网站有重复的网站结构使用间歇性更新方式的数据库(而不是连续不断的更新数据库)被重复搜索出相同结果的就能够通过执行缓存方式改进其性能和伸缩性
官方网站
EHCache
EHCache 是一个纯java的在进程中的缓存它具有以下特性快速简单为Hibernate充当可插入的缓存最小的依赖性全面的文档和测试
官方网站
JCache
JCache是个开源程序正在努力成为JSR开源规范JSR规范已经很多年没改变了这个版本仍然是构建在最初的功能定义上
官方网站
ShiftOne
ShiftOne Java Object Cache是一个执行一系列严格的对象缓存策略的Java lib就像一个轻量级的配置缓存工作状态的框架
官方网站
SwarmCache
SwarmCache是一个简单且有效的分布式缓存它使用IP multicast与同一个局域网的其他主机进行通讯是特别为集群和数据驱动web应用程序而设计的SwarmCache能够让典型的读操作大大超过写操作的这类应用提供更好的性能支持
SwarmCache使用JavaGroups来管理从属关系和分布式缓存的通讯
官方网站
TreeCache / JBossCache
JBossCache是一个复制的事务处理缓存它允许你缓存企业级应用数据来更好的改善性能缓存数据被自动复制让你轻松进行JBoss服务器之间的集群工作JBossCache能够通过JBoss应用服务或其他JEE容器来运行一个MBean服务当然它也能独立运行
JBossCache包括两个模块TreeCache和TreeCacheAOP
TreeCache 是一个树形结构复制的事务处理缓存
TreeCacheAOP 是一个面向对象缓存它使用AOP来动态管理POJO(Plain Old Java Objects)
注AOP是OOP的延续是Aspect Oriented Programming的缩写意思是面向方面编程
官方网站
WhirlyCache
Whirlycache是一个快速的可配置的存在于内存中的对象的缓存它能够通过缓存对象来加快网站或应用程序的速度否则就必须通过查询数据库或其他代价较高的处理程序来建立
官方网站