Redis vs Memcached: Which In‑Memory Database Wins for Your Projects?
This article compares Redis and Memcached across thread model, data structures, eviction policies, pipelining, persistence, high availability, and clustering, helping developers choose the most suitable in‑memory database for their specific performance and feature requirements.
Introduction
Both Redis and Memcached are in‑memory databases known for extremely fast access, but developers often wonder which one to choose for a given scenario.
Why is Redis more popular today? This article compares the two from several angles to help you decide.
Thread Model
Memcached uses a multithreaded model with I/O multiplexing; a main thread distributes requests to worker threads, allowing long‑running requests not to block others, though thread switching and locking add overhead.
Redis also uses I/O multiplexing but processes requests in a single thread, meaning a long request blocks the server. The single‑threaded design avoids context‑switch costs and lock contention but cannot exploit multiple CPU cores.
Because Redis is memory‑bound, its bottleneck is memory and network bandwidth rather than CPU.
Data Structures
Memcached only supports simple string values (max 1 MB) with expiration up to 30 days, requiring manual serialization for complex data.
Redis offers a rich set of native types: string, list, hash, set, sorted set, geo, and HyperLogLog, each with dedicated operations, providing great flexibility.
Eviction Policies
Memcached enforces a global memory limit and evicts using LRU, but its design can evict newly written items first.
Redis has no mandatory memory cap and provides multiple eviction strategies such as volatile‑lru, allkeys‑lru, volatile‑random, allkeys‑random, volatile‑ttl, volatile‑lfu, and allkeys‑lfu, allowing selection based on workload.
Pipelining and Transactions
Redis supports pipelining—batching multiple commands in a single network round‑trip—and a lightweight transaction model that ensures atomic execution of a command sequence.
Persistence
Memcached does not persist data; a crash loses everything.
Redis offers RDB snapshots and AOF append‑only logs, which can be combined to guarantee data durability.
High Availability
Memcached lacks built‑in replication; it must be deployed as a single node or with client‑side sharding.
Redis provides master‑slave replication, Sentinel for automatic failover, and read‑write splitting to improve availability and performance.
Clustering
Both systems can run in clusters. Memcached relies on client‑side consistent hashing; Redis uses hash slots distributed across nodes, with each node typically having a replica for added resilience. Adding or removing nodes requires manual rebalancing.
Conclusion
Redis delivers a richer feature set and comparable performance, making it the preferred choice for applications needing diverse data structures and high availability, while Memcached remains suitable for simple, high‑throughput get/set workloads with modest memory requirements.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Open Source Linux
Focused on sharing Linux/Unix content, covering fundamentals, system development, network programming, automation/operations, cloud computing, and related professional knowledge.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
