Ehcache is a widely used java distributed cache for general purpose caching, Java EE and light-weight containers.
It features memory and disk stores, replicate by copy and invalidate, listeners, cache loaders, cache extensions, cache exception handlers, a gzip caching servlet filter and much more…
Ehcache is available under an Apache open source license and is actively developed, maintained and supported.
Link: ehcache.sourceforge.net