缓存淘汰算法-LRU算法(附C++实现)

什么是LRU算法

LRU是Least Recently Used的缩写,即最近最少使用。最早接触这个算法是在大学学习计算机操作系统课程中,它是操作系统中的一种页面置换算法,是为虚拟页式存储管理服务的。它是以以最近的过去作为不久将来的近似,把过去最长一段时间里不曾被使用的页面置换掉。

缓存淘汰算法-LRU算法(附C++实现)

LRU算法实现简单,当存在热点数据时,效率很好,但偶发性的、周期性的批量操作会导致LRU命中率急剧下降,缓存污染情况比较严重。

算法实现

最常见的实现是使用一个链表保存缓存数据。

缓存淘汰算法-LRU算法(附C++实现)

C++版本实现

采用List和Map的两种数据结构,Map可以解决查询效率,List可以解决插入删除的效率。

缓存淘汰算法-LRU算法(附C++实现)

缓存淘汰算法-LRU算法(附C++实现)


分享到:


相關文章: