首页>程序源码>编程与开发>lru
适用

lru

声明:资源链接索引至第三方,平台不作任何存储,仅提供信息检索服务,若有版权问题,请https://help.coders100.com提交工单反馈
LRU(Least Recently Used)是一种常用的缓存淘汰策略,用于在内存中存储最近使用的数据。当数据被访问时,LRU 会检查其是否仍然有效,如果无效则将其替换为最近使用的数据。这种策略可以避免缓存中的长时间未使用的数据占用过多的内存空间。

简易版 LRU 缓存实现可以通过以下步骤完成:
1. 创建一个字典来存储缓存数据和对应的访问次数。
2. 每次访问数据时,检查该数据是否在缓存中,如果不在,则将数据添加到缓存中并增加访问次数。
3. 当数据过期时,从缓存中移除数据。
4. 当缓存容量达到限制时,删除最久未使用的数据。

以下是一个简单的 Python 代码示例:

class LRUCache:
def __init__(self, capacity):
self.capacity = capacity
self.cache = {}
self.access_count = {}

def get(self, key):
if key in self.cache:
self.access_count[key] = self.access_count.get(key, 0) + 1
if self.access_count[key] > self.capacity:
key = max(self.cache, key)
return self.cache[key]
return -1

def put(self, key, value):
if key in self.cache:
self.access_count[key] += 1
else:
self.cache[key] = value
if len(self.cache) > self.capacity:
key = min(self.cache, key)
self.access_count[key] = 1

# 使用示例
lru_cache = LRUCache(3)
lru_cache.put(1, 'A')
lru_cache.put(2, 'B')
print(lru_cache.get(1)) # 输出:'A'
print(lru_cache.get(2)) # 输出:'B'
lru_cache.put(3, 'C')
print(lru_cache.get(1)) # 输出:-1
print(lru_cache.get(2)) # 输出:'B'
print(lru_cache.get(3)) # 输出:'C'
print(lru_cache.get(4)) # 输出:-1
电信网络下载

访问申明(访问视为同意此申明)

1.在网站平台的任何操作视为已阅读和同意网站底部的版权及免责申明
2.部分网络用户分享TXT文件内容为网盘地址有可能会失效或其他任何情况(此类多为视频教程,如发生失效情况【联系客服】自助退回)
3.请多看看评论和内容介绍大数据情况下资源并不能保证每一条都是完美的资源
4.是否访问均为用户自主行为,本站只提供搜索服务不提供技术支持,感谢您的支持
意见反馈 联系客服 返回顶部

登录注册找回密码

已捐赠用户,填写交易订单号或用户名和邮箱重置密码

未捐赠用户,不填订单号,填用户名和邮箱重置密码

捐赠账单

可选择微信或支付宝捐赠

*本着平台非营利,请自主选择捐赠或分享资源获得积分

*您的捐赠仅代表平台的搜索服务费,如有疑问请通过联系客服反馈

*请依据自身情况量力选择捐赠类型并点击“确认”按钮

*依据中国相关法规,捐赠金额平台将不予提供发票

*感谢您的捐赠,我们竭诚为您提供更好的搜索服务

*请务必认真阅读上诉声明,捐赠视为理解同意上诉声明

啥都没有哦