LRU Cache 最近最少使用缓存算法

作用

LRU(Least Recently Used) Cache,直译为 最近最少使用 缓存算法。
因Cache的资源容量是宝贵而有限的,当有新的内容需要添加到缓存中时,就需要舍弃一部分原有的内容,LRU的原则就是将最近最少使用的内容替换掉。

实现数据结构

典型的实现方法为: Hash map + 双向链表
双向链表: 用来存储带有时间戳的数据节点,当需要访问或者插入一个节点时,都插入到列表的头部,这样可以保证靠近表头的节点都是使用比较活跃、最近一段时间内可能还会使用的,而靠近链表尾部的节点自然就是最近一段时间内没有被访问过的,当Cache满时,就优先替换掉链表尾部的节点。
哈希表用于快速获取节点,达到访问时间复杂度为 O ( 1 ) O(1) O(1).

你可能感兴趣的:(算法)