LRU 缓存是一种常见的数据结构优化策略,主要用于缓存系统中。它通过记录数据访问的顺序,来实现缓存数据的动态更新,确保最近最少被访问的数据会被优先淘汰。
LRU 缓存的基本原理
- 链表:LRU 缓存使用链表来记录数据访问的顺序,链表中的节点按照访问顺序排列。
- 哈希表:为了快速查找数据,LRU 缓存还使用哈希表来存储链表中节点的引用。
LRU 缓存的实现
以下是一个简单的 LRU 缓存实现示例:
class LRUCache:
def __init__(self, capacity: int):
self.capacity = capacity
self.cache = OrderedDict()
self.count = 0
def get(self, key: int) -> int:
if key not in self.cache:
return -1
else:
self.cache.move_to_end(key)
return self.cache[key]
def put(self, key: int, value: int) -> None:
if key in self.cache:
self.cache.move_to_end(key)
self.cache[key] = value
self.count += 1
if self.count > self.capacity:
self.cache.popitem(last=False)
self.count -= 1
扩展阅读
想要了解更多关于数据结构优化的知识,可以访问本站的相关页面:/数据结构优化。
Python