📅  最后修改于: 2023-12-03 15:36:32.763000             🧑  作者: Mango
在计算机科学中,LRU 缓存(Least Recently Used cache)是一种常见的缓存策略。它根据数据最近被访问的时间来踢出最近最少使用的数据。在 Python 中,我们可以使用 OrderedDict 来实现 LRU 缓存。
以下是实现 LRU 缓存的简单过程:
下面是一个简单的 LRU 缓存实现:
from collections import OrderedDict
class LRUCache:
def __init__(self, capacity: int):
self.capacity = capacity
self.cache = OrderedDict()
def get(self, key: int) -> int:
if key not in self.cache:
return -1
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
if len(self.cache) > self.capacity:
self.cache.popitem(last=False)
我们可以通过以下方式使用 LRU 缓存:
# 创建一个容量为 2 的 LRU 缓存
cache = LRUCache(2)
# 添加元素到缓存中
cache.put(1, 1)
cache.put(2, 2)
# 从缓存中获取元素
print(cache.get(1)) # 输出 1
# 添加新元素到缓存中,这应该会导致元素 2 被删除
cache.put(3, 3)
# 元素 2 应该已经被删除了
print(cache.get(2)) # 输出 -1
使用 OrderedDict 在 Python 中实现 LRU 缓存是一种简单明了的方法。在实现和使用 LRU 缓存时,请记住我们要追踪缓存中元素的使用情况,并且当缓存容量超出限制时,我们要删除最近最少使用的元素。