Redis easy
Redis uses a Single-Threaded Event Loop for command execution. What is a key operational implication of this architectural design?
- A The server cannot utilize CPU caches efficiently, leading to slow performance on modern chips.
- B Heavy O(N) commands (like `KEYS *`) can block the thread and freeze the entire database.
- C The database can only accept one network connection at a time from a single physical client.
- D Redis is forced to use multiple threads for writing to ensuring durability on NVMe storage.
Answer: B. Heavy O(N) commands (like `KEYS *`) can block the thread and freeze the entire database.
Being single-threaded makes Redis simple and fast by avoiding lock contention. However, it means everything runs in a 'First-Come, First-Served' queue. If one command takes 5s, 10,000 other clients will wait 5s for any response.
One system design question a day, with spaced repetition so the ones you miss come back.
Get the appRelated questions
- If the Redis memory limit is reached, what specific behavior is exhibited by the `allkeys-lru` eviction policy?
- What is the defining characteristic of a Redis 'Set' data type compared to a standard Redis 'List'?
- In the context of Redis messaging, what is the functional definition of the 'Pub/Sub' feature?
- How does the Redis background snapshotting process (`BGSAVE`) leverage the operating system's `fork()` mechanism to minimize memory overhead?
- Why does Redis proactively disconnect a Pub/Sub client that exhibits high 'output buffer' usage relative to its ingestion rate?
- How does a 'Sorted Set' (ZSET) manage its internal membership and ordering differently from a plain Set?