Ehcache is an open source, standards-based cache used to boost performance, offload the database and simplify scalability. Ehcache is robust, proven and full-featured and this has made it the most widely-used Java-based cache.
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 uses the open source Terracotta Server Array.
Ehcache is actively developed, maintained and supported as a professional open source project by Terracotta, Inc. and is available under an Apache 2 license.
In addition to the full-featured open source Ehcache edition, Terracotta offers enterprise editions of Ehcache with 24x7 Professional Support, Consulting, and Training services worldwide.
Ehcache is distributed in the following modules:
| ehcache | a packaging of commonly used modules |
| ehcache-core | Caching engine, RMI replication and Hibernate plugins |
| ehcache-terracotta | Seamless integration with Terracotta clustering |
| ehcache-monitor | Enterprise-class monitoring and management for development and production |
| ehcache-web | Java Servlet Container caching, gzipping filters |
| 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 |
| ehcache-explicitlocking | Explicit locking control for standalone and Terracotta |
| ehcache-unlockedreadsview | Unlocked reads view of a coherent Terracotta cache |
| ehcache-nonstopcache | Fine-grained control over timeouts and offline events |
| ehcache-debugger | Allows tracing of RMI distributed replication events |
Ehcache 2.2 and Enterprise Ehcache 2.2 have been released. The new capabilities in this latest version of Ehcache are focused on improving the scalability, visibility, and management of the Terracotta-backed distributed cache for Ehcache. Enterprise Ehcache 2.2 enables customers to store over a terabyte of data and hundreds of millions of entries in a single cache. Designed to be a snap-in capability, this new terabyte-scale storage option can be turned on with a simple change to the ehcache configuration file.
New in Ehcache 2.2:
New in Enterprise Ehcache 2.2:
This add-on tool for Ehcache provides enterprise-class monitoring and management capabilities for use in both development and production. It is intended to help understand and tune cache usage, detect errors, and provide an easy to use access point to integrate with production management systems. It also provides administrative functionality such as the ability to forcefully remove items from caches.
Note: Ehcache Monitor is not open source. It is available free for development use but must be licensed for production use. A production license is provided as part of the commercial versions of Ehcache, either DX, EX or FX.
Simply install the Monitor on an Operations server, add the Monitor Probe jar to your app, add a few lines of config in ehcache.xml and your done.
See the documentation for Ehcache Monitor, including a usage video from Ehcache founder Greg Luck, or download here.
Ehcache 2.1.0 rounds out Ehcache 2.0. JTA support has been added for standalone ehcache. JTA for Hibernate has been added which now means Ehcache supports all Hibernate strategies. ehcache-nonstopcache adds a new API with support for timeouts on Cache Operations and configurable actions on disconnection from a cluster. ehcache-unlockedreadsview adds support for a coherent cache to expose an unlocked view at the same time, for rapid response.
The maturity and depth of the integration between Ehcache and Terracotta server is now such that, for distributed caching, the two best way to use each technology is with each other. With that in mind Terracotta server is now distributed in the Ehcache download. Servers at dev time need to fit into the development process. Terracotta has a tc-maven-plugin that works as well and simply as the famed Jetty plugin. Instructions on its use are included in the download.
For more information on this release see Steve Harris's excellent blog article on it.
Ehcache 2.1.0 will rounds out Ehcache 2.0. JTA support has been added for standalone ehcache. JTA for Hibernate has been added which now means Ehcache supports all Hibernate strategies. ehcache-nonstopcache adds a new API with support for timeouts on Cache Operations and configurable actions on disconnection from a cluster. ehcache-unlockedreadsview adds support for a coherent cache to expose an unlocked view at the same time, for rapid response.
The maturity and depth of the integration between Ehcache and Terracotta server is now such that, for distributed caching, the two best way to use each technology is with each other. With that in mind Terracotta server is now distributed in the Ehcache download. Servers at dev time need to fit into the development process. Terracotta has a tc-maven-plugin that works as well and simply as the famed Jetty plugin. Instructions on its use are included in the download.
Finally, the Architecture page has been updated with rich flash animations showing how Ehcache and Terracotta work together and illustrating the major APIs. Feedback on this material to gluck AT terracottatech.com is appreciated.
New bug fix versions of ehcache and ehcache-web are available.
Ehcache Server and Standalone Server have been released to Sourceforge Downloads. The server provides RESTful and SOAP APIs to Ehcache. It is available as a WAR which works with all app servers, or standalone using Glassfish V3 embedded.
New in this release is integration with Terracotta Server Array for coherent, scalable and HA caching. Also the Ehcache core has been upgraded to version 2.0, Jersey to 1.1.5, Metro to 2.1.5 and for standalone, Glassfish to V3 embedded.
This release has been performance tested against memcache and gives comparable over-the-network performance. Coupled with the simplicity of coding in your HTTP client of choice in your programming language of choice and easily getting the benefits of Terracotta Server Array backing it, this is a killer combination.
See the Ehcache Server documentation to get started or download it now.
Due to an issue with external repository handling, these have not yet been released to Maven. Sonatype are completing a project for Sun whereby they will be adding their artifacts to the Central repository. This is expected to be completed this week or next, so the Maven artifacts will be released then.
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.
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.
To provide an indicator in the documentation on what is new in 2.0, you will this icon: new_in_2.
This is a preview of Ehcache 2.0, aka Project Darwin. Features are as per the GA release.
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...