algorithm-base/animation-simulation/设计/LRU.md

35 lines
1.6 KiB
Java
Raw Normal View History

2021-04-19 03:01:18 +00:00
说起缓存我们都不陌生
浏览器缓存数据库缓存等
说起**缓存淘汰策略**我们也很熟悉
例如先进先出策略FIFOFirst InFirst Out,最少使用策略LFULeast Frequently Used,最近最少使用策略LRULeast Recently Used
看到这里大家是不是想到我们今天要说什么啦
我们就来说一下其中的一个缓存淘汰策略**最近最少使用策略LRU**
LRU 的含义很容易理解我们可以这样思考最近使用过的我们则认为其是有用的很久没用过的则认为是无用的因为我们的内存有限当我们内存满的时候肯定是先清除那些很久没用过的数据
其实我们生活中有很多相似的例子大家也都经历过
下面我们将镜头切换到袁记菜馆
袁厨最近新买了一些菜谱打算在书房里好好闭关钻研一波
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/微信截图_20210412213211.1d8uyzj1qysg.png)
这下是不是理解个大概啦
其实生活中的我们也是这样的买的一本新书则随手放到了最上面从书堆中抽出一本使用过后也放到了最上面清理书时先清理很久没使用过的对自己不太重要的也就是最下面的图书
到这里是不是就理解啦其实生活中还有类似的例子比如安卓手机的后台运行整理衣柜的衣物等
好啦我们理解了 LRU 的含义
那么我们可以使用什么数据结构实现呢
数组
数组当然可以但是我们使用数组需要