cache 篇二

Java Caching System
  JCS(Java Caching System)是一个用分布式的缓存系统,是基于服务器的java应用程序。它是通过提供管理各种动态缓存数据来加速动态web应用。
  JCS和其他缓存系统一样,也是一个用于高速读取,低速写入的应用程序。
  动态内容和报表系统能够获得更好的性能。
  如果一个网站,有重复的网站结构,使用间歇性更新方式的数据库(而不是连续不断的更新数据库),被重复搜索出相同结果的,就能够通过执行缓存方式改进其性能和伸缩性。
官方网站 http://jakarta.apache.org/jcs/index.html

Hibernate早期版本中采用了JCS(Java Caching System -Apache Turbine项目中的一个子项目)作为默认的第二层Cache实现。由于JCS的发展停顿,以及其内在的一些问题(在某些情况下,可能导致内存泄漏以及 死锁),新版本的Hibernate已经将JCS去除,并用EHCache作为其默认的第二级Cache实现,也可进行配置使用其它缓存,现在使用的有 EHCache。

EHCache
  EHCache 是一个纯java的分布式缓存,支持磁盘存储,它具有以下特性:快速,简单,为Hibernate充当可插入的缓存,最小的依赖性,全面的文档和测试。
官方网站 http://ehcache.org/

OSCache
  OSCache是一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。
  OSCache有以下特点:
  缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。
  拥有全面的API--OSCache API给你全面的程序来控制所有的OSCache特性。
  永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。
支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码。
缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。
官方网站 http://www.opensymphony.com/oscache/

Cache4J

  Cache4J是一个接口简单,可以快速上手,基于BSD许可的开源缓存软件。不过最新的版本已经是2006年的了。
  Cache4J有以下特点:
  暂只只是内存缓存;
  多线程环境设计;
  2种实现:synchronized, blocking;
  支持LFU, LRU, FIFO算法。
  支持磁盘存储,分布式引用,以及LFU2, LRU2等算法将是Cache4J接下来要实现的功能;另外,该软件的使用指南和API文档均是俄文。
官方网站:http://cache4j.sourceforge.net/

JCache(FKache)
  JCache是个开源程序,正在努力成为JSR-107开源规范,JSR-107规范已经很多年没改变了。这个版本仍然是构建在最初的功能定义上。
官方网站 http://jcache.sourceforge.net/

ShiftOne
  ShiftOne Java Object Cache是一个执行一系列严格的对象缓存策略的Javalib,就像一个轻量级的配置缓存工作状态的框架。
官方网站 http://jocache.sourceforge.net/

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

TreeCache / JBossCache
  JBossCache是一个复制的事务处理缓存, 它允许你缓存企业级应用数据来更好的改善性能。缓存数据被自动复制,让你轻松进行 JBoss服务器之间的集群工作。JBossCache能够通过JBoss应用服务或其他J2EE容器来运行一个MBean服务,当然,它也能独立运行。
  JBossCache包括两个模块:TreeCache和TreeCacheAOP。
  TreeCache --是一个树形结构复制的事务处理缓存。
  TreeCacheAOP --是一个“面向对象”缓存,它使用AOP来动态管理POJO(Plain Old Java Objects)
  注:AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。
官方网站 http://www.jboss.org/products/jbosscache

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

Jive Cache
   Jive论坛曾经是一个广受欢迎的开放源码的论坛项目,现在已经商业化了,它有很多值得我们学习的地方。jive 2.6.0 的缓存机制,把所要缓存的对象加到HashMap哈希映射表中,用两个LinkedListedlist双向链表分别维持着缓存对象和每个缓存对象的生命 周期,如果一个缓存对象被访问到,那么就把它放到链表的最前面,然后不定时的把要缓存对象的对象加入链表中,把过期对象删除,如此反复。
官方网站 http://www.jivesoftware.com

OFBiz Cache
   OFBiz是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、 分布式电子商务类WEB应用系统的框架。 OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具。包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等。Ofbiz与Jive实现的Cache类似,只是Ofbiz中根本都不关心每个对象的Size,只关心总体的HashMap的 Size;Jive为了实现双向联表,而在Ofbiz中用的是java.util.LinkedList。
官方网站 http://www.ofbiz.org/

 

hibernate-memcached

hibernate-memcached这个java类库用于在Hibernate中使用Memcached作为一个二级分布式缓存。支持实体和查 询缓 存。Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在WEB动态应用程序中减少数据库负载,提升访问速度。

官方网站 http://code.google.com/p/hibernate-memcached/

 

XMemcached  

Xmemcached是基于java nio实现的高性能可扩展的memcached客户端。

实际上是基于我实现的一个nio框架Yan4j的基础上实现的(目前是基于yanf4j 0.61-snapshot),序列化机制使用spymemcached的Transcoder并做了部分改造。

官方网站 http://code.google.com/p/xmemcached/

 

Spymemcached

Spymemcached是一个采用Java开发的异步、单线程的Memcached客户端。

你可能感兴趣的:(cache)