为什么缓存使用最近使用 (MRU) 算法作为逐出策略?

2022-09-01 02:58:46

我知道MRU的算法及其反向最近最少使用(LRU)。

我认为LRU是合理的,因为LRU元素意味着它将来至少会被使用。但是,MRU元素意味着该元素将来很有可能被使用,为什么要将其逐出?合理的情况是什么?


答案 1

想象一下,当公共汽车到达公共汽车站时,您正在根据公共汽车号码(或您使用的任何标识符)查找公共汽车的详细信息。

可以合理地认为,如果你刚刚看到36号巴士,你不太可能立即看到另一辆巴士,而不是看到其他一辆停在那里的巴士。

举个例子,但这个想法更一般:在某些情况下,“刚刚看到的东西”是一个很好的指标,表明你不太可能很快再次看到同样的事情。


答案 2

也许一个更具体的例子是媒体服务器。当用户看完视频(假设它是电视节目的一集)时,他们可能最不可能再次观看它。因此,如果您必须逐出某些内容,请逐出最近查看的项目。

但在实践中,我相信这种类型的缓存通常与LRU或LFU缓存一起使用,其中两个缓存串联允许您涵盖各种情况。