FIFO缓存与LRU缓存

时间:2013-03-26 18:16:32

标签: caching data-structures hash fifo

我真的很抱歉这么简单的问题。我只是想确保我正确理解FIFO缓存模型,我希望有人能帮助我:)如果缓存已满,LRU缓存将删除最近最少访问的条目。如果缓存需要可用空间,FIFO将删除之前添加的条目(?),而不是其他条目(例如,如果'a' - 'v' - 'f' - 'k'是缓存中的条目,'a'是最旧的条目然后缓存将删除'a',如果它将需要可用空间)。

我是对的吗?

3 个答案:

答案 0 :(得分:8)

你是对的。

将FIFO视为通过隧道的汽车。第一辆进入隧道的车将是第一辆驶出另一侧的车。

将LRU缓存视为清理车库。你将丢弃长时间未使用的物品,并保留经常使用的物品。该算法的演变(对简单LRU的改进)将丢弃长时间未使用的项目,并且如果您需要它们,则替换成本不高。

答案 1 :(得分:0)

是的,LRU缓存基于最近在缓存中使用on对象,但FIFO基于缓存对象的时间。

答案 2 :(得分:0)

是的,这是正确的。 FIFO表示先入,先出,即严格按到达顺序考虑(在这种情况下为删除)元素。 LRU是最近最少使用的,没有被使用最长时间的缓存元素被驱逐(预感很快就不需要)。