【发布时间】:2013-03-26 18:16:31
【问题描述】:
对于这么简单的问题,我真的很抱歉。我只是想确保我正确理解 FIFO 缓存模型,我希望有人能帮助我:) 如果缓存已满,LRU 缓存会删除最近最少访问的条目。如果缓存需要可用空间(例如,如果 'a' - 'v' - 'f' - 'k' 是缓存中的条目,而 'a' 是如果需要可用空间,则缓存将删除最旧的条目)。
我说的对吗?
【问题讨论】:
标签: caching data-structures hash fifo
对于这么简单的问题,我真的很抱歉。我只是想确保我正确理解 FIFO 缓存模型,我希望有人能帮助我:) 如果缓存已满,LRU 缓存会删除最近最少访问的条目。如果缓存需要可用空间(例如,如果 'a' - 'v' - 'f' - 'k' 是缓存中的条目,而 'a' 是如果需要可用空间,则缓存将删除最旧的条目)。
我说的对吗?
【问题讨论】:
标签: caching data-structures hash fifo
你是对的。
将 FIFO 想象为穿过隧道的汽车。第一辆进入隧道的汽车将是第一个驶出另一侧的汽车。
将 LRU 缓存视为清理车库。你会扔掉你很长一段时间没有使用的物品,并保留你经常使用的物品。该算法的演变(对简单 LRU 的改进)将丢弃长时间未使用的物品,而且如果您需要它们,更换也不昂贵。
【讨论】:
是的,LRU 缓存基于最近最少使用缓存中的对象,但 FIFO 是基于对象被缓存的时间。
【讨论】:
是的,没错。 FIFO 意味着先进先出,即严格按照到达顺序考虑(在这种情况下删除)元素。 LRU 是最近最少使用的,最长时间没有使用的缓存元素被驱逐(预感很快就不需要了)。
【讨论】: