使用单链表实现LRU缓存淘汰策略
2020-01-12 23:07
531 查看
LRU缓存淘汰策略
什么是LRU缓存淘汰算法
常见的缓存淘汰策略有三种:先进先出策略FIFO(First In,First Out)、最少使用策略LFU(Least Frequently Used)、最近最少使用策略LRU(Least Recently Used)。本章介绍如何使用单链表实现LRU策略。
单链表实现LRU
假设有一个有序单链表,越靠近链表尾部的结点是越早之前访问的。当有一个新的数据被访问时,我们从链表头开始顺序遍历链表。
1.若该数据之前已经被在链表中了,先遍历得到这个数据对应的结点,然后将其从原来的位置删除,再插入到链表的头部。
2.如果此数据不在链表中,分以下两种情况:
A.如果此时缓存未满,则将此结点直接插入到链表的头部;
B.如果此时缓存已满,则链表尾结点删除,将新的数据结点插入链表的头部。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 缓存淘汰算法--LRU算法【最近最少使用算法LRU置换策略适用于热点数据比较多的场景】
- 数据结构与算法-如何用链表来实现LRU缓存淘汰策略
- 最近最久未使用页面淘汰算法———LRU算法(java实现)
- 模拟实现FIFO,LRU,OPT内存淘汰策略
- Java实现LRU(最近最少使用)缓存
- 10行Java代码实现最近被使用(LRU)缓存
- 缓存策略之LRU实现(基于双链表实现)
- C++实现LRU(最久未使用)缓存算法
- 利用LinkedHashMap简单实现基于LRU策略的缓存
- 使用LinkedHashMap实现LRU缓存
- 缓存 使用注意事项 淘汰策略
- JAVA实现LRU缓存淘汰
- 10行Java代码实现最近被使用(LRU)缓存
- 【体系结构】缓存替换策略,用O(n)位实现的近似 LRU算法【Cache replacement: Pseudo LRU】
- 链表(上):如何实现LRU缓存淘汰算法?
- 400行代码实现本地Key-Value缓存,性能每秒几百万次,进程重启有效,LRU淘汰——HashTable
- Java实现LRU(最近最少使用)缓存
- leetcode LRU Cache(高级缓存的最近最少使用算法实现)
- 详解三种缓存过期策略LFU,FIFO,LRU(附带实现代码)
- [原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存