Skip to content

Latest commit

 

History

History
25 lines (15 loc) · 1.14 KB

缓存置换算法小结.md

File metadata and controls

25 lines (15 loc) · 1.14 KB

缓存算法

首先缓存两个基本的特点, 一个是缓存空间有限, 另一个是数据过期,缓存空间有限就需要我们对有限的控件进行利用,数据的置换策略非常重要,基本的置换策略有FIFO、LRU、LFU

FIFO缓存算法

FIFO最为简单,其基本假设就是最近被加载进来的数据下次使用到的可能性大于之前被加载进来的数据,对于符合这种假设的场景较为适用。

实现:

LRU缓存算法

LRU缓存算法采取的缓存置换策略是, 当缓存空间满时新来的数据置换到未使用时间最长的那个,实现中采用双向链表, 将每次访问到的数据放在链表的最前端,从而保证链表里的数据是按使用时间有序的。

实现:

LFU缓存算法

采取的缓存置换策略是, 当缓存空间满时新来的数据置换使用频率最低的那个缓存数据,实现中用频率字典加双向链表记录节点的访问次数,每次插入都更新节点频率字典, 再将新的数据插入。

实现: