大创4

本文介绍了常见的缓存失效算法,如FIFO、MRU、LFU、LRU和ARC,并探讨了如何定向驱逐缓存中的数据。提出了通过记录访问历史来决定驱逐目标的方法,但也指出这种方法可能存在的成本高和误报率问题。对于数据驱逐算法的设计,提出了需要考虑的要素和挑战。
摘要由CSDN通过智能技术生成

大创4

缓存失效算法

1,FIFO算法

所谓FIFO算法,就是先进先出队列, FIFO使用起来很简单,但是只能顺序写入数据,顺序的输出数据,不可以有地址线决定读取或写入某个指定的地址。

2.MRU算法

MRU算法也被称为最常使用算法,即一个条目处理越久,越容易被访问,该条目久越容易被清除

3.LFU算法

该算法使用一个计数器来记录条目被访问的频率。最低访问数的条目首先被移除。但是他无法对一个拥有最初高访问率的之后长时间没有被访问的条目缓存进行清除。

4.LRU算法

这个缓存算法将最近使用的条目存放到靠近缓存顶部的位置,当一个新条目被访问时,LRU将它放置到缓存的顶部。当缓存到达极限时,较早之前访问的条栏目将从缓存底部开始被移除,。

5.ARC算法

该算法同时跟踪记录LFU和LRU,以及驱逐缓存条目,来获得可用缓存的最佳使用。

思考:如何来进行对缓存的定向驱逐呢?

我的想法是,可以构建一个cache中的数据的集合,通过不断的访问cache,判断是否命中(可能会有一定的误报率),如果命中,则对该集合中的数据记录下来,即该数据是cache中存在的数据 ,若没有命中,则说明cache中不存在该数据。我们可以从记录下来的数据中选择我们要主动驱逐的,通过一种驱逐算法,对cache中的数据进行判断是否在我们所构建的集合中,如果存在就对她进行驱逐,反之继续遍历。但可能存在几个问题:1,成本可能会比较高。2,这个集合我们怎么创建。3,该设计怎样一种算法来对数据进行驱逐。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值