Ehcache is an open source, standards-based cache used in a wide array of applications to boost performance, offload the database and simplify scalability. Ehcache is robust, proven and full-features and this has made it the most widely used Java-based cache.
Ehcache is available under an Apache 2 license and is actively developed, maintained and supported as a professional open source project by Terracotta, Inc. and used as a key component of the Terracotta scalability continuum.
Ehcache features memory and disk stores, replicate by copy and invalidate, listeners, cache loaders, cache extensions, cache exception handlers, a gzip caching servlet filter, RESTful & SOAP APIs, an implementation of JSR107 and much more....
It can scale from in-process with one or more nodes through to a mixed in-process/out-of-process configuration with terabyte sized caches. For applications needing a coherent distributed cache, Ehcache can be be distributed using the open source Terracotta Sever Array.
In addition to the full-featured open source Ehcache edition, Terracotta offers the following enterprise editions of Ehcache:
Terracotta offers a range of 24x7 Professional Support, Consulting, and Training services worldwide to assist you in development and and in operations with Ehcache.
Ehcache is distributed in the following modules:
| ehcache | a packaging of commonly used modules |
| ehcache-core | Caching engine, RMI replication and Hibernate plugin |
| ehcache-terracotta | Seamless integration with Terracotta clustering |
| ehcache-monitor (beta 2) | Enterprise-class monitoring and management for development and production |
| ehcache-web | Java Servlet Container caching, gzipping filters |
| ehcache-debugger | Allows tracing of distributed replication events |
| ehcache-jcache | JSR107 JCACHE Implementation |
| ehcache-jgroupsreplication | Replication via JGroups |
| ehcache-jmsreplication | Replication via JMS |
| ehcache-openjpa | Caching Plugin for OpenJPA |
| ehcache-server | RESTful cache server in a WAR or standalone |
This is a beta release of project Darwing a.k.a Ehcache 2.0.
Ehcache 2.0 provides a new Hibernate 3.3 SPI caching plugin, JTA, Write-Behind, a new ultra-fast Bulk Loading API for clustered caches. and dynamic runtime cache reconfiguration.
Ehcache 2.0 is fully backward compatible with earlier versions of Ehcache.
The Terracotta Server Array ("TSA") has also been re-engineered to dovetail with Ehcache to provide these features with cluster coherence, high availability and persistence. Darwin betas with TSA are available here.
This release also introduces some improvements to ehcache which reduce memory use (over 1.6 and 1.7) by the cache and improve the eviction algorithms.
See the changelog for complete details of ehcache-core changes.
A GA release is expected at the beginning of March.
This is a final GA release of ehcache comprising ehcache, ehcache-core and ehcache-terracotta modules.
This release contains some bug fixes to ehcache-core, but the notable change is the upgrade of the ehcache-terracotta module to support Terracotta 3.2. Terracotta 3.2 is dramatically faster than 3.1. See the changelog for complete details of ehcache-core changes.
Note: If you experience different caching ergonomics you can enable the LinkedHashMap based engine with java -Dnet.sf.ehcache.use.classic.lru=true. This is the engine enabled up to 1.5.
Back in July we released the first plugin for OpenJPA. This version brings OpenJPA more into line with the Hibernate plugin and more fully implements the OpenJPA API. As with all of the modules we are releasing, this version adds the option, when paired with the ehcache-terracotta module of clustering via Terracotta.
See ehcache-openjpa.
We have had hundreds of people sign up for an play with beta 1 of the Ehcache Monitor. We have fixed over 15 bugs in Beta 1 and have released Beta 2. We have also created a roadmap for beta 3 which will add significant new features. See Ehcache Monitor Beta.
Ehcache Web has been part of Ehcache for years. In this release the web caching is split into its own module. The web module provides a filter based PageCachingFilter and PageFragmentCachingFilter which can be used with any Java web framework for caching of HTML, SOAP, REST, JSON, XML and other types.
New in this release is integration with ehcache-terracotta 1.7.1 and higher, so that coherent, terabyte scale web caches can be created.
See ehcache-web.
Grails 1.2RC1 and higher use Ehcache as the default Hibernate second level cache. However earlier versions of Grails ship with the Ehcache library and are very simple to enable.
A new Grails Chapter shows how to configure Grails to use Ehcache and how to tune it for production use.
More news...