LRU (Least recently used)
LRU,最近最小使用算法,是一种缓存淘汰算法,淘汰最久没有被使用的数据。
LRU 数据结构实现
LRU 可以使用链表加哈希表的数据结构实现。其中,如果链表使用单链表,数据查询和数据插入的时间复杂度都为O(n)
;如果链表使用双链表,可以将查询和插入的时间复杂度减小到O(1)
。
通过链表的数据结构来保证数据的有序性,实现按最长未使用时间的排序。哈希表的 key 即为数据的 key,value 存储数据对应的双链表节点,哈希表的作用是降低查询的时间复杂度。