W-TinyLFU (Windowed TinyLFU) Cache
W-TinyLFU is a windowed TinyLFU with sliding window.
Overview
W-TinyLFU (Windowed TinyLFU) adds a sliding window mechanism to TinyLFU. It uses a time window to track access frequency, better handling time-based access patterns and periodic data access.
Features
- Hit Rate: 90%
- Memory Usage: Medium
- Concurrency: High
- Implementation Complexity: Complex
Use Cases
- Time-based access patterns
- Periodic data access
- Sliding window requirements
- Scenarios requiring time window statistics
Quick Start
Installation
Basic Usage
How It Works
W-TinyLFU uses a sliding window:
Accesses within the window are used to calculate frequency, accesses outside the window gradually decay.
API Reference
Constructors
Main Methods
Performance Characteristics
- Time Complexity:
- Set: O(1) average
- Get: O(1) average
- Delete: O(1)
- Space Complexity: O(n), where n is cache capacity
Best Practices
- Choose appropriate window size: Adjust window size based on access patterns
- Periodic access: W-TinyLFU is particularly suitable for periodic access patterns
- Time window statistics: Suitable for scenarios requiring time window statistics