Redis vs Memcached Use Cases
coreintermediateElastiCache runs three engines: Valkey, Redis OSS, and Memcached. Memcached is simpler and multithreaded, good for pure key-value object caching that must scale out across many nodes. Valkey and Redis OSS add data structures (sorted sets, hashes, lists), pub/sub, and replication with automatic failover, at the cost of being single-threaded per node.
Think of it as
Memcached is a fast, disposable whiteboard — write anything, erase it anytime, and if the board breaks you just get a new one with nothing on it. Redis OSS/Valkey is a shared notebook with structure — sorted pages, cross-references, and a backup copy (replica) that can take over if the original notebook is destroyed.
What we're doing: Pick the right engine for two different caching needs on the same application.
- 1
- Rendered HTML fragments are opaque blobs looked up by key — Memcached's simple string values and multithreading are the better fit, and there is no data structure or failover requirement to justify Redis/Valkey.
- 4
- A leaderboard needs a data structure the application would otherwise reimplement in every server, and the notification stream needs pub/sub — both are native to Valkey/Redis OSS and absent from Memcached.
Why this works: The two workloads look similar on the surface ("cache some data"), but one needs nothing beyond a key-value store while the other needs server-side data structures and messaging — the engine choice follows directly from which capabilities the workload actually uses, not from which engine is "better" in general.
Defaulting to Redis/Valkey for a workload that only needs plain key-value caching
Wrong
Better
What you see: A large single-node Memcached workload migrated to Redis/Valkey loses the multithreading benefit on that node and needs more, smaller nodes to use the same number of cores — with no data-structure or pub/sub benefit ever used.
Why: Redis/Valkey's single-threaded-per-node model and Memcached's multithreaded model create genuinely different scaling shapes — using Redis/Valkey by default for a workload that never touches its data structures, replication, or pub/sub pays that scaling cost for a capability set the workload never needed.
- Memcached
- Simple string/object values only
- Multithreaded — scales cores within one node
- No replication, no automatic failover
- No pub/sub
- Valkey / Redis OSS
- Sorted sets, hashes, lists, geospatial data types
- Single-threaded per node — scale by adding shards
- Replication with automatic failover
- Pub/sub messaging built in
Memcached vs Valkey/Redis OSS — deciding factors
Together
Remember: Memcached: simple values, multithreaded, no replication/failover, no pub/sub — pick it for pure object caching that scales out. Valkey/Redis OSS: data structures, pub/sub, replication with automatic failover — pick it when the workload needs any of those.
See also: cache aside write through and ttl · cache availability and failover

