Need advice about which tool to choose?Ask the StackShare community!

Ehcache

86
123
+ 1
4
Memcached

5.6K
4K
+ 1
469
Add tool

Ehcache vs Memcached: What are the differences?

Developers describe Ehcache as "Java's Most Widely-Used Cache". Ehcache is an open source, standards-based cache for boosting performance, offloading your database, and simplifying scalability. It's the most widely-used Java-based cache because it's robust, proven, and full-featured. Ehcache scales from in-process, with one or more nodes, all the way to mixed in-process/out-of-process configurations with terabyte-sized caches. On the other hand, Memcached is detailed as "High-performance, distributed memory object caching system". Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

Ehcache belongs to "Cache" category of the tech stack, while Memcached can be primarily classified under "Databases".

Ehcache and Memcached are both open source tools. Memcached with 9K GitHub stars and 2.6K forks on GitHub appears to be more popular than Ehcache with 1.33K GitHub stars and 456 GitHub forks.

According to the StackShare community, Memcached has a broader approval, being mentioned in 755 company stacks & 267 developers stacks; compared to Ehcache, which is listed in 4 company stacks and 8 developer stacks.

Advice on Ehcache and Memcached
Francisco José Casasaltas Perales
Needs advice
on
Memcached
guava
and
Ehcache

Hi guys! I need an in-memory key/value storage with a lifespan for each key What do you recommend me to use? I was thinking about using a ConcurrentHashMap, with a scheduled thread evicting keys when apply. In fact, it is a possibility due because the performance is not important. But, on the other side, I have considered using any library such as Memcached, Ehcache, guava...

See more
Replies (1)
Recommends
Redis

Redis can do the same jobs as Memcached, ECache or any other im-memory caching tool and can do them better. - Redis can act as a cache as well. It can store key/value pairs too. In Redis, they can even be up to 512MB. - Redis is better documented than Memcached and ECached. - Supports many data types. (Strings, Hashes, Lists, Sets, Sorted Sets, Geo, Bitmap and HyperLogLog) - Redis provides pub/sub as well. - Redis can be scaled easily horizontally if needed using its own tool Redis Sentinel. - Wide variety of client libraries in almost every language.

See more
Decisions about Ehcache and Memcached
 This was roughly 4 years ago at this point. We had been using an old iteration of memcache on Windows as the data cache per server for while and had for whatever reason opted to store our session data (to which the application is heavily dependent) in App Fabric. App Fabric had come to EOL and we needed to move away from it. As a quick search showed throughput capacity to be higher and overall features of Redis were better we initially implemented it. The number of changes required were minimal and we were able to migrate away to a more resilient system pretty quickly.
 We hit a snag in that the implementation of the Redis session handler at that point only took a single IP so we had to do use keepalived and HAProxy to display the application consistently between master and slave failovers. This caused issues on occasion of dropped connections to the backend service. We upgraded our client and could put both members into our config files and it stopped timing out. We were all happy in this and it was (for it's own part) a significant upgrade. Generally performance was better for all pages. 
 We found however, that our application was serializing all requests and locking on the thread via session lock for a great many things and this caused us and our users considerable headaches on occasion. We found that the implementation of the couchbase session handler gave us the option of ignoring session write locks and not be required to rewrite dozens of pages to handle the no session requirement as the application was working fine without the need to be threadsafe. Though the maximum throughput was not as good compared to Redis the application performance was considerably better as a result of the change. The multi-master write was a big benefit and the cross data center replication was a nice thing to have as that would allow our users to remain logged in even across DataCenter fail-over events (praying that never happened). Overall we used that for session handling and chose to use couchbase (in a 2nd cluster) to handle memcache requests as that gave us greater capacity to handle larger objects more efficiently. 
 We are, all these years later, looking to move into the newer features of couchbase to give us more and better use of this product that really has been the answer to a bunch of the growing pains we experienced. Since the decision performance has not been on wild rides and stability has never been better. So I sing the praises of couchbase to anyone that will listen.
See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of Ehcache
Pros of Memcached
  • 1
    Way Faster than Redis and Elasticache Redis
  • 1
    Easy setup
  • 1
    Simpler to run in testing environment
  • 1
    Container doesn't have to be running for local tests
  • 137
    Fast object cache
  • 128
    High-performance
  • 90
    Stable
  • 65
    Mature
  • 33
    Distributed caching system
  • 11
    Improved response time and throughput
  • 3
    Great for caching HTML
  • 2
    Putta

Sign up to add or upvote prosMake informed product decisions

Cons of Ehcache
Cons of Memcached
    Be the first to leave a con
    • 2
      Only caches simple types

    Sign up to add or upvote consMake informed product decisions

    What is Ehcache?

    Ehcache is an open source, standards-based cache for boosting performance, offloading your database, and simplifying scalability. It's the most widely-used Java-based cache because it's robust, proven, and full-featured. Ehcache scales from in-process, with one or more nodes, all the way to mixed in-process/out-of-process configurations with terabyte-sized caches.

    What is Memcached?

    Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Ehcache?
    What companies use Memcached?
    See which teams inside your own company are using Ehcache or Memcached.
    Sign up for Private StackShareLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Ehcache?
    What tools integrate with Memcached?
      No integrations found

      Sign up to get full access to all the tool integrationsMake informed product decisions

      Blog Posts

      Dec 22 2020 at 9:26PM

      Pinterest

      +4
      10
      2328
      Jun 6 2019 at 5:11PM

      AppSignal

      +9
      15
      1141
      +17
      33
      29895
      +47
      49
      69264
      +26
      19
      4614
      +42
      52
      19829
      +25
      7
      2827
      What are some alternatives to Ehcache and Memcached?
      Apache Ignite
      It is a memory-centric distributed database, caching, and processing platform for transactional, analytical, and streaming workloads delivering in-memory speeds at petabyte scale
      Hazelcast
      With its various distributed data structures, distributed caching capabilities, elastic nature, memcache support, integration with Spring and Hibernate and more importantly with so many happy users, Hazelcast is feature-rich, enterprise-ready and developer-friendly in-memory data grid solution.
      Redis
      Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
      guava
      The Guava project contains several of Google's core libraries that we rely on in our Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.
      GraphQL Cache
      A custom middleware for graphql-ruby that handles key construction and cache reads/writes transparently.
      See all alternatives