What if your system could decide on its own which data to keep or toss, making everything faster without your constant attention?
Why Cache eviction policies (LRU, LFU, TTL) in HLD? - Purpose & Use Cases
Imagine you have a small desk where you keep your most used books. When the desk is full, you have to decide which book to remove to make space for a new one. Without a clear rule, you might remove a book you still need soon, causing frustration and wasted time.
Manually choosing which items to remove from a cache is slow and error-prone. It can lead to removing important data too early or keeping useless data too long, which slows down the system and wastes memory.
Cache eviction policies like LRU (Least Recently Used), LFU (Least Frequently Used), and TTL (Time To Live) automate these decisions. They smartly decide which data to remove, keeping the cache efficient and fast without manual effort.
if cache_is_full:
remove_random_item()
add_new_item()cache.put(key, value) # Eviction policy handles removal automaticallyIt enables systems to keep the most useful data readily available, improving speed and saving resources effortlessly.
Think of a streaming app that remembers your recently watched shows (LRU) or your favorite songs you play often (LFU), so it loads them quickly without searching every time.
Manual cache management is inefficient and error-prone.
Eviction policies automate smart removal of data.
This keeps systems fast and resource-friendly.
Practice
Solution
Step 1: Understand LRU policy
LRU removes the cache entry that was accessed the longest time ago, prioritizing recent usage.Step 2: Compare with other policies
LFU removes least used items by frequency, TTL removes expired items by time, Random Replacement is arbitrary.Final Answer:
Least Recently Used (LRU) -> Option DQuick Check:
Oldest access time = LRU [OK]
- Confusing LRU with LFU
- Thinking TTL removes based on usage
- Assuming random removal is LRU
Solution
Step 1: Define TTL policy
TTL (Time To Live) removes cache entries after their set expiration time passes.Step 2: Contrast with other policies
LRU removes oldest used, LFU removes least used by frequency, random is arbitrary.Final Answer:
Removes data after a fixed expiration time -> Option AQuick Check:
TTL = expiration time removal [OK]
- Mixing TTL with LRU or LFU
- Thinking TTL depends on usage frequency
- Assuming TTL removes randomly
Solution
Step 1: Count frequency of each key
Key A accessed 3 times, B accessed 2 times, C accessed 1 time.Step 2: Identify LFU eviction candidate
LFU removes the least frequently used key, which is C with frequency 1.Final Answer:
Key C -> Option AQuick Check:
Lowest frequency = C [OK]
- Evicting most recent key instead of least frequent
- Confusing frequency with recency
- Evicting key D which is new
Solution
Step 1: Understand TTL eviction mechanism
TTL eviction requires checking if entries have expired before returning or during cleanup.Step 2: Identify why expired entries remain
If cache does not check expiration on access or cleanup, expired entries stay indefinitely.Final Answer:
The cache does not check expiration before access -> Option CQuick Check:
Expiration check missing = no TTL eviction [OK]
- Assuming low TTL causes no eviction
- Confusing TTL with LRU behavior
- Thinking cache size affects TTL eviction
Solution
Step 1: Analyze data usage pattern
Articles are popular shortly after publishing, then become stale after days.Step 2: Match eviction policy to pattern
TTL removes data after expiration time, ideal for removing stale articles automatically.Step 3: Compare with other policies
LRU and LFU focus on usage, but TTL ensures freshness by time. Random is inefficient.Final Answer:
Time To Live (TTL) -> Option BQuick Check:
Freshness by expiration time = TTL [OK]
- Choosing LRU or LFU ignoring data staleness
- Assuming random eviction is efficient
- Not considering time-based expiration
Ready to prove it?
Pass the test and this pattern moves unknown
