How do cache eviction policies differ?
Assesses fundamental understanding of Caching Strategies conventions, runtime behavior, and memory/performance considerations.
Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.
Eviction decides what to remove when the cache is full or memory is constrained:
- LRU (least recently used): evicts the item not accessed for the longest time. A solid default for general workloads.
- LFU (least frequently used): evicts the item accessed least often. Better when popularity is stable, but slow to adapt when access patterns change and it can retain stale hot items.
- FIFO: evicts the oldest inserted item regardless of use. Simple but ignores access patterns.
- Random: cheap and surprisingly effective under some workloads, with no bookkeeping.
- TTL-based: expire by age, often combined with another policy.
redis: maxmemory-policy allkeys-lru | allkeys-lfu | volatile-ttl
Redis exposes these via maxmemory-policy and evicts when maxmemory is reached. Choose by access pattern: LRU for recency-heavy traffic, LFU for skewed stable popularity, and TTL for data with natural freshness. Whatever you pick, expect misses: the application must handle a cache miss correctly and cheaply.
Candidate Response Strategy & Interview Tips
- Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
- Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
- Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
- Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.