Ehcache vs Memcached
Ehcache
ehcache.orgMemcached
memcached.orgSide by side
| Figure | Ehcache | Memcached |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | — |
| macOS | — | Yes |
| Linux | — | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 3 | 1 |
| Spec score · Caching Software | 8.5 (#4) | 7.9 (#10) |
| Installation | Ehcache 3.11.1 can be added with Maven or Gradle using org.ehcache:ehcache:3.11.1. | The downloads page provides a source tarball and installation instructions, including package prerequisites for Debian/Ubuntu and Red Hat/CentOS. |
| Purpose | Ehcache is an open-source, standards-based Java cache that boosts performance, offloads databases, and simplifies scalability. | Memcached is a distributed in-memory key-value cache intended to speed up dynamic web applications by reducing database load. |
| Support | Ehcache documentation directs users with unanswered questions to its support forums. | The project directs users to its Discord chat, documentation, and mailing list for questions, and points to Cache Forge for business support. |
Plans
In their own words
Ehcache
Ehcache is a free, open-source Java caching library for keeping application data, database results, and web pages available to applications. It is designed to improve performance, reduce database work, and support scaling. It can run inside an application or in mixed in-process and out-of-process deployments, including terabyte-sized caches. Ehcache 3 supports off-heap storage, including configurations that rely on it exclusively, and is compatible with the JCache API defined by JSR-107. The project describes Spring Caching and Hibernate integration through javax.cache support. Configuration is available through XML or the Java API, and data can be shared between application instances using Terracotta clustered storage. Ehcache 3.11 also allows caches to share resources. It supports JTA-managed XA transactions, including two-phase commit and crash recovery, but documents Read-Committed as the only supported isolation level and Bitronix 2.1.4 as the only tested transaction manager. Ehcache 3.11 requires Java 8 or later and is the last release line to support Java 8. The license is Apache 2.0.
Memcached
Memcached is a free, self-hosted in-memory key-value cache for reducing database load in dynamic web applications. It keeps small chunks of arbitrary data, such as strings, objects, and results from database calls, API calls, or page rendering. Clients use key-based hashing to choose a server, while servers operate independently without synchronization or replication. Items can expire after a specified time, and the default eviction policy is least recently used (LRU). The project describes Memcached as a developer tool, not code acceleration software or database middleware. Its API is available for most popular languages, and downloads include a source tarball and installation instructions with package prerequisites for Debian/Ubuntu and Red Hat/CentOS. TLS authentication and encryption are supported in version 1.5.13 and later when built with TLS and used with a TLS-capable client. Optional extstore moves values to external storage while keeping keys and the hash table in memory; it needs version 1.6.0 or newer. The project began in 2003. It is free and self-hosted, with no hosted plan or price listed.