LRU-K (Least Recently Used with K) Cache
LRU-K is an LRU cache that tracks access frequency.
Overview
LRU-K is an improved version of LRU that tracks the access frequency for each key (K times). When the cache is full, it prioritizes evicting keys with lower access frequencies, rather than simply evicting the least recently used key.
Features
- Hit Rate: 88%
- Memory Usage: Medium
- Concurrency: Medium
- Implementation Complexity: Medium
Use Cases
- Balance recency and frequency
- Mixed access patterns
- Scenarios needing to consider access frequency
Quick Start
Installation
Basic Usage
How It Works
LRU-K maintains access history for each key (most recent K accesses):
When evicting, considers both:
- Recent access time
- Access frequency (based on K recent accesses)
API Reference
Constructors
Main Methods
Performance Characteristics
- Time Complexity:
- Set: O(1)
- Get: O(1)
- Delete: O(1)
- Space Complexity: O(n * k), where n is cache capacity, k is number of tracked accesses
Best Practices
- Choose appropriate K value: Usually K=2 or K=3 works well
- Balance recency and frequency: LRU-K provides balance between both
- Mixed access patterns: Suitable for scenarios with both temporal and frequency locality