Table of Contents
Implementing an LRU cache replacement policy helps optimize memory usage by removing the least recently accessed items when the cache reaches its capacity. This guide provides practical steps to develop an LRU cache in various programming environments.
Understanding LRU Cache
An LRU (Least Recently Used) cache keeps track of item usage to determine which data to evict when space is needed. It prioritizes recently accessed items, ensuring that frequently used data remains available.
Core Components of an LRU Cache
An effective LRU cache typically combines two data structures:
- Hash Map: Provides fast access to cache items.
- Doubly Linked List: Maintains the order of item usage, with the most recent at the front.
Implementation Steps
Follow these steps to implement an LRU cache:
- Initialize the hash map and doubly linked list.
- On data access, move the item to the front of the list.
- If the cache exceeds capacity, remove the item at the end of the list.
- Update the hash map accordingly during insertions and deletions.
Sample Implementation in Python
Here is a simple example of an LRU cache in Python:
Note: This code uses the collections module for OrderedDict, which simplifies the implementation.
“`python
from collections import OrderedDict
class LRUCache:
def __init__(self, capacity):
self.cache = OrderedDict()
self.capacity = capacity
def get(self, key):
if key not in self.cache:
return -1
self.cache.move_to_end(key)
return self.cache[key]
def put(self, key, value):
self.cache[key] = value
self.cache.move_to_end(key)
if len(self.cache) > self.capacity:
self.cache.popitem(last=False)
“`