缓存算法

简介: 缓存、页面置换算法

缓存生效原理

访问局部性原理
访问局部性原理可以总结为以下三点

  1. 空间局部性

空间局部性为最近访问的数据在不远的将来会再次被访问。

  1. 时间局部性

访问趋向于在地址空间中聚集(比如:访问数据或者循环操作)。

  1. 顺序局部性

指令趋向于按顺序访问。

访问局部性原则是的计算机系统可以使用少量的快速存储器加速对们速存储的高效访问。

典型术语

  1. 命中

要访问的信息存在与给定层次的存储器中。

  1. 失效

要访问的信息在给定的存储器中没有找到。

  1. 命中率

在给定层次存储器中找到所需信息的比率。

  1. 失效率

在给定层级存储器中没有找到所需信息的比率。

  1. 命中时间

在给定层次的存储器中访问信息需要的时间。

  1. 失效惩罚

处理一次失效所需的时间,包括在较高层次存储器中替换一个块的时间和将所需数据传给处理所需要的额外开销。

缓存算法

  1. 最优缓存(仅作为度量标准)
  2. 最近未使用算法
  3. 先进先出
  4. 第二次机会
  5. 时钟算法
  6. 最近最少使用算法 LRU
  7. 最不常用算法 LFU

缓存设计问题

  1. 颠簸(Denning)

部分缓存算法实现

github地址

  1. LRU https://github.com/fofcn/operation-system/tree/main/%E5%AE%9E%E8%B7%B5/os/src/main/java/cache/lru
  2. LFU

https://github.com/fofcn/operation-system/tree/main/%E5%AE%9E%E8%B7%B5/os/src/main/java/cache/lfu

目录
相关文章
|
2月前
|
缓存 算法 NoSQL
【分布式详解】一致性算法、全局唯一ID、分布式锁、分布式事务、 分布式缓存、分布式任务、分布式会话
分布式系统通过副本控制协议,使得从系统外部读取系统内部各个副本的数据在一定的约束条件下相同,称之为副本一致性(consistency)。副本一致性是针对分布式系统而言的,不是针对某一个副本而言。强一致性(strong consistency):任何时刻任何用户或节点都可以读到最近一次成功更新的副本数据。强一致性是程度最高的一致性要求,也是实践中最难以实现的一致性。单调一致性(monotonic consistency):任何时刻,任何用户一旦读到某个数据在某次更新后的值,这个用户不会再读到比这个值更旧的值。
494 0
|
1月前
|
存储 缓存 算法
数据结构和算法学习记录——总结顺序表和链表(双向带头循环链表)的优缺点、CPU高速缓存命中率
数据结构和算法学习记录——总结顺序表和链表(双向带头循环链表)的优缺点、CPU高速缓存命中率
19 0
|
5天前
|
缓存 算法 前端开发
前端 JS 经典:LRU 缓存算法
前端 JS 经典:LRU 缓存算法
6 0
|
2月前
|
存储 缓存 算法
面试遇到算法题:实现LRU缓存
V哥的这个实现的关键在于维护一个双向链表,它可以帮助我们快速地访问、更新和删除最近最少使用的节点,同时使用哈希表来提供快速的查找能力。这样,我们就可以在 O(1) 的时间复杂度内完成所有的缓存操作。哈哈干净利索,回答完毕。
|
2月前
|
缓存 算法 Java
数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,万字解析
数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,万字解析
|
2月前
|
缓存 算法 前端开发
前端开发者必知的缓存淘汰策略:LRU算法解析与实践
前端开发者必知的缓存淘汰策略:LRU算法解析与实践
|
2月前
|
缓存 算法
LRU(Least Recently Used)算法是一种常用的计算机缓存替换算法
【5月更文挑战第4天】LRU算法是基于页面使用频率的缓存策略,优先淘汰最近最久未使用的页面。实现可采用双向链表或数组,前者灵活,后者时间复杂度低。优点是利用时间局部性提高命中率,简单易实现;缺点是占用空间,对循环访问和随机访问场景适应性不佳。
52 0
|
2月前
|
缓存 算法 Java
如何实现缓存与LRU算法以及惰性过期
如何实现缓存与LRU算法以及惰性过期
41 1
|
2月前
|
存储 缓存 算法
数据结构与算法面试题:实现一个 LRU 缓存,支持如下操作:获取值、更新值、删除键值对和插入键值对
数据结构与算法面试题:实现一个 LRU 缓存,支持如下操作:获取值、更新值、删除键值对和插入键值对
45 0
|
2月前
|
存储 缓存 算法
☆打卡算法☆LeetCode 146. LRU 缓存 算法解析
☆打卡算法☆LeetCode 146. LRU 缓存 算法解析