`
dalan_123
  • 浏览: 87424 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

你所熟知的 LRU(最近最少使用)

    博客分类:
  • java
阅读更多

关于LRU这个名词在很多地方或听说,或使用,接下来看下lru缓存回收的实现

1、大体的想法

    a、查询出最近最晚使用的项

    b、给最近的使用的项做标记

通过使用链表就可以完成这两个操作,关于最近最少使用的项只需要返回链表的尾部;标记最近使用的项,只需要将该项移除并放置到头部,那么难点就出现 你如何能够快速在链表定位对应的该项?

这时候多半很多人想到使用哈希表,它可以在常规的时间内容,定位到某一个对象,采用 key关联存放链表节点的哈希表,这样我们就可以根据key执行hash获取到对应的链表节点对应的哈希表,这样就可以快点找到最近使用的节点(也就是实际需要的列表项),同样可以判断节点的存在与否。

那么这种结构是我们自己构造还是采用现有的api;熟悉java 的人都知道,LinkedHashMap是完全满足我们的需求,这样只需在继承LinkedHashMap的基础进行微调即可满足我们所需的LRU回收。

分享到:
评论

相关推荐

    最近最少使用(LRU)置换算法

    最近最久未使用(LRU) 选择最后一次访问时间距离当前时间最长的一页并淘汰之 LRU软件实现 设置一个页号栈, 当一个页面被访问时,就立即将它的页号压入页号栈,并检查页号栈中是否有与刚压入栈顶的相同的页号,若...

    quicklru简单的最近最少使用LRU缓存

    标题中的"quicklru简单的最近最少使用LRU缓存"指的是一种轻量级的LRU实现,旨在提供高效且易于使用的缓存解决方案。它可能是一个小型库,专为JavaScript环境设计,用于存储和检索数据,同时保持较低的内存占用。 ...

    tmpcache用35行代码实现最近最少使用LRU的缓存管理器

    最近最少使用(Least Recently Used,简称LRU)是一种广泛使用的缓存替换策略。它基于这样一个假设:最近被访问的数据将来最有可能再次被访问。当缓存满时,LRU策略会优先淘汰最近最少使用的数据。这里我们将探讨一...

    完整 LRU 最近最久未使用页面置换算法 操作系统 课程设计

    LRU 最近最久未使用页面置换算法操作系统课程设计报告 LRU(Least Recently Used)最近最久未使用页面置换算法是一种常用的页面置换算法,用于操作系统中页面替换的决策。该算法的核心思想是选择最近最久未使用的...

    cachelru:最近最少使用算法

    其中,“最近最少使用算法”(Least Recently Used, LRU)是缓存淘汰策略的一种常见实现,尤其在JavaScript开发中被广泛采用。 LRU算法基于一个假设:最近频繁使用的数据在将来也更可能被频繁使用。因此,当缓存...

    最近最久LRU页面置换算法

    LRU(Least Recently Used)页面置换算法是一种在操作系统中用于管理内存资源的策略,它遵循一个简单的原则:当内存满时,最近最久未使用的页面将被替换出去。这个算法假设最近频繁使用的数据将来也更可能被频繁访问...

    操作系统页面置换算法之-LRU(最近最少未使用)

    LRU页面置换算法 操作系统 大作业 郑州大学软件学院 含有详细注释

    操作系统页面置换-最近最少使用(LRU)算法模拟.doc.doc

    最近最少使用(LRU)算法是一种常见的页面置换策略,它的基本思想是:当需要替换一个页面时,选择最近最久未使用的页面进行替换。这是因为假设最近使用的页面在未来更可能再次被使用,而很久未使用的页面则可能不再...

    LRU(Least Recently Used, 最近最久未使用)算法。

    当物理内存不足时,操作系统会依据LRU原则选择最近最少使用的页面进行换出到磁盘的交换分区,以便腾出内存供其他进程使用。 在Windows系统中,虽然没有直接使用LRU作为内存管理策略的名称,但其虚拟内存管理系统...

    LRU 页面置换算法 最近最久未使用 源代码 c/c++

    其中,“最近最少使用”(Least Recently Used,简称LRU)算法是一种常用且高效的页面置换策略。本文将基于给定的C/C++源代码,深入解析LRU页面置换算法的工作原理及其具体实现细节。 #### LRU算法的核心思想 LRU...

    LRU算法 lru算法

    LRU(Least Recently Used)算法是一种常用的页面替换策略,它基于“最近最少使用”的原则来决定何时替换内存中的页面。在计算机系统中,由于物理内存有限,当程序需要的内存超过实际可用内存时,操作系统会将部分...

    lru-cache:编程求职面试设计问题-最近最少使用的缓存

    实现一个LRU(最近最少使用)缓存。 它应该能够使用缓存大小n进行初始化,并包含以下方法: set(key, value) :将key设置为value。 如果缓存中已经有n个项目,并且我们要添加一个新项目,那么它还应该删除最近最少...

    由链表实现的存储管理 先出页面置换算法、最近最少使用LRU页面置换算法、最佳置换算法

    本主题聚焦于通过链表实现的存储管理,特别是涉及了三种重要的页面置换算法:先出(FIFO)页面置换算法、最近最少使用(LRU)页面置换算法和最佳(OPT)置换算法。 首先,内存分配与回收是存储管理的基础。当一个新...

    最近最少使用cache,提取leveldb的lru cache部分,增加过期时间,过期失效

    在数据库系统,如LevelDB中,LRU缓存被用来提高数据读取性能,通过将最频繁或最近使用的数据项保留在内存中,减少对磁盘的访问。 LevelDB是由Google开发的一个轻量级、高性能的键值存储系统,广泛应用于日志记录、...

    该存储库模拟GEO分布式最近最少使用(LRU)缓存.zip

    标题中的“该存储库模拟GEO分布式最近最少使用(LRU)缓存”是指一个软件项目,它旨在模仿地理分布式环境下的LRU缓存机制。LRU(Least Recently Used)缓存是一种常用的内存管理策略,当缓存空间有限时,会优先淘汰...

    先进先出和最近最少使用页面置换

    综上所述,先进先出和最近最少使用页面置换是两种基本的页面调度策略,它们各有优缺点,实际操作系统设计时需要根据具体需求和资源限制来选择合适的算法。理解这些基础概念对于深入学习操作系统和内存管理至关重要。

    最近最久未使用LRU置换算法模拟·

    LRU(Least Recently Used)最近最久未使用替换算法是一种常用的页面置换算法,广泛应用于操作系统、数据库管理系统等需要管理内存资源的场景。该算法的基本思想是:当内存空间不足时,优先淘汰最近最长时间未被访问...

    操作系统 页面替换算法(OPT最佳置换算法与LRU最近最久未使用算法)

    操作系统 页面替换算法(OPT最佳置换算法与LRU最近最久未使用算法)

    页面置换算法FIFO:先进先出 NUR: 最近未使用算法

    LRU(Least Recently Used)算法与LFU不同,它只关注最近一次访问的时间,即最近最少使用的页面会被优先替换。LRU在应对数据访问变化方面有较好的适应性,但它只是时间上的局部优化,没有考虑长期访问特性。 为了...

    最近最少用置换算法(LRU).pdf

    最近最少使用(Least Recently Used, LRU)置换算法是一种常见的页面替换策略,广泛应用于虚拟存储管理系统中。当主存空间不足,需要将页面调出时,LRU算法会选择最近最久未使用的页面进行替换,假设最近使用的页面...

Global site tag (gtag.js) - Google Analytics