打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python实现LRU热点缓存

基于列表+Hash的LRU算法实现。

  • 访问某个热点时,先将其从原来的位置删除,再将其插入列表的表头

  • 为使读取及删除操作的时间复杂度为O(1),使用hash存储热点的信息的键值

 

 class LRUCache():     def __init__(self, size=5):         '''         默认队列的长度为5         使用列表来维护,使用字典来查询         '''         self.size = size         self.cache = dict()         self.key = [] ​     def get(self, key):         '''         获取缓存中的key的值         '''         if self.cache.get(key):             self.key.remove(key)             self.key.insert(0, key)             return self.cache[key]         return None ​     def set(self, key, value):         '''         设置缓存,实现缓存淘汰         '''         if self.cache.get(key):             self.cache.pop(key)             self.cache[key] = value             self.key.remove(key)             self.key.insert(0, key)         elif len(self.key) == self.size:             old_key = self.key.pop()             self.key.insert(0, key)             self.cache.pop(old_key)             self.cache[key] = value         else:             self.key.insert(0, key)             self.cache[key] = value

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
缓存?你能说的明白彻底吗?
自适应Lru(最近最少使用)算法
Python缓存lru_cache的介绍和讲解
Python进阶系列(十六)
一文讲透Redis里面也在使用的LRU缓存算法!
redis 过期策略
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服