Comparing Valkey, Redis OSS, and Memcached self-designed caches - Amazon ElastiCache

Comparing Valkey, Redis OSS, and Memcached self-designed caches

Amazon ElastiCache supports the Valkey, Redis OSS, and Memcached cache engines. Each engine provides some advantages. Use the information in this topic to help you choose the engine and version that best meets your requirements.

Important

After you create a cache, self-designed cluster or replication group, you can upgrade to a newer engine version, but you cannot downgrade to an older engine version. If you want to use an older engine version, you must delete the existing cache, self-designed cluster or replication group and create it again with the earlier engine version.

On the surface, the engines look similar. Each of them is an in-memory key-value store. However, in practice there are significant differences.

Choose Memcached if the following apply for you:
  • You need the simplest model possible.

  • You need to run large nodes with multiple cores or threads.

  • You need the ability to scale out and in, adding and removing nodes as demand on your system increases and decreases.

  • You need to cache objects.

Choose Valkey or Redis OSS with ElastiCache if the following apply for you:
  • ElastiCache with Valkey 7.2 or Redis OSS version 7.0 (Enhanced)

    You want to use Functions, Sharded Pub/Sub, or ACL improvements. For more information, see Redis OSS Version 7.0 (Enhanced).

  • ElastiCache (Redis OSS) version 6.2 (Enhanced)

    You want the ability to tier data between memory and SSD using the r6gd node type. For more information, see Data tiering.

  • ElastiCache (Redis OSS) version 6.0 (Enhanced)

    You want to authenticate users with role-based access control.

    For more information, see Redis OSS Version 6.0 (Enhanced).

  • ElastiCache (Redis OSS) version 5.0.0 (Enhanced)

    You want to use Redis OSS streams, a log data structure that allows producers to append new items in real time and also allows consumers to consume messages either in a blocking or non-blocking fashion.

    For more information, see Redis OSS Version 5.0.0 (Enhanced).

  • ElastiCache (Redis OSS) version 4.0.10 (Enhanced)

    Supports both encryption and dynamically adding or removing shards from your Valkey or Redis OSS (cluster mode enabled) cluster.

    For more information, see Redis OSS Version 4.0.10 (Enhanced).

The following versions are deprecated, have reached or soon to reach end of life.

  • ElastiCache (Redis OSS) version 3.2.10 (Enhanced)

    Supports the ability to dynamically add or remove shards from your Valkey or Redis OSS (cluster mode enabled) cluster.

    Important

    Currently ElastiCache (Redis OSS) 3.2.10 doesn't support encryption.

    For more information, see the following:

  • ElastiCache (Redis OSS) version 3.2.6 (Enhanced)

    If you need the functionality of earlier Redis OSS versions plus the following features, choose ElastiCache (Redis OSS) 3.2.6:

  • ElastiCache (Redis OSS) (Cluster mode enabled) version 3.2.4

    If you need the functionality of Redis OSS 2.8.x plus the following features, choose Redis OSS 3.2.4 (clustered mode):

    • You need to partition your data across two to 500 node groups (clustered mode only).

    • You need geospatial indexing (clustered mode or non-clustered mode).

    • You don't need to support multiple databases.

  • ElastiCache (Redis OSS) (non-clustered mode) 2.8.x and 3.2.4 (Enhanced)

    If the following apply for you, choose Redis OSS 2.8.x or Redis OSS 3.2.4 (non-clustered mode):

    • You need complex data types, such as strings, hashes, lists, sets, sorted sets, and bitmaps.

    • You need to sort or rank in-memory datasets.

    • You need persistence of your key store.

    • You need to replicate your data from the primary to one or more read replicas for read intensive applications.

    • You need automatic failover if your primary node fails.

    • You need publish and subscribe (pub/sub) capabilities—to inform clients about events on the server.

    • You need backup and restore capabilities for self-designed clusters as well as serverless caches.

    • You need to support multiple databases.

Comparison summary of Memcached, Valkey or Redis OSS (cluster mode disabled), and Valkey or Redis OSS (cluster mode enabled)
Memcached Valkey or Redis OSS (cluster mode disabled) Valkey or Redis OSS (cluster mode enabled)
Engine versions+ 1.4.5 and later 4.0.10 and later 4.0.10 and later
Data types Simple ‡ 2.8.x - Complex * 3.2.x and later - Complex †
Complex †
Data partitioning Yes No Yes
Cluster is modifiable Yes Yes 3.2.10 and later - Limited
Online resharding No No 3.2.10 and later
Encryption in-transit 1.6.12 and later 4.0.10 and later 4.0.10 and later
Data tiering No 6.2 and later 6.2 and later
Compliance certifications
Compliance Certification

    FedRAMP

    HIPAA

    PCI DSS

 

Yes - 1.6.12 and later

Yes - 1.6.12 and later

Yes

 

4.0.10 and later

4.0.10 and later

4.0.10 and later

 

4.0.10 and later

4.0.10 and later

4.0.10 and later

Multi-threaded Yes No No
Node type upgrade No Yes Yes
Engine upgrading Yes Yes Yes
High availability (replication) No Yes Yes
Automatic failover No Optional Required
Pub/Sub capabilities No Yes Yes
Sorted sets No Yes Yes
Backup and restore For Serverless Memcached only, not for self-designed Memcached clusters Yes Yes
Geospatial indexing No 4.0.10 and later Yes
Notes:
‡ string, objects (like databases)
* string, sets, sorted sets, lists, hashes, bitmaps, hyperloglog
† string, sets, sorted sets, lists, hashes, bitmaps, hyperloglog, geospatial indexes
+ Excludes versions which are deprecated, have reached or soon to reach end of life.

After you choose the engine for your cluster, we recommend that you use the most recent version of that engine. For more information, see Supported node types.