缓存算法是指令的一个明细表,用于决定缓存系统中哪些数据应该被删去。

常见类型包括LFU、LRU、ARC、FIFO、MRU。

最不经常使用算法(LFU):

这个缓存算法使用一个计数器来记录条目被访问的频率。通过使用LFU缓存算法,最低访问数的条目首先被移除。这个方法并不经常使用,因为它无法对一个拥有最初高访问率之后长时间没有被访问的条目缓存负责。

最近最少使用算法(LRU):

这个缓存算法将最近使用的条目存放到靠近缓存顶部的位置。当一个新条目被访问时,LRU将它放置到缓存的顶部。当缓存达到极限时,较早之前访问的条目将从缓存底部开始被移除。这里会使用到昂贵的算法,而且它需要记录“年龄位”来精确显示条目是何时被访问的。此外,当一个LRU缓存算法删除某个条目后,“年龄位”将随其他条目发生改变。

自适应缓存替换算法(ARC):

在IBM Almaden研究中心开发,这个缓存算法同时跟踪记录LFU和LRU,以及驱逐缓存条目,来获得可用缓存的最佳使用。

先进先出算法(FIFO):

FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。

最近最常使用算法(MRU):

这个缓存算法最先移除最近最常使用的条目。一个MRU算法擅长处理一个条目越久,越容易被访问的情况。

推荐阅读

干货:2TB架构师四阶段视频教程

面经:史上最全Java多线程面试题及答案

面经:史上最全阿里高级Java面试题

面经:史上最全Spring面试题

教程:最全Spring Boot全套视频教程

书籍:进阶Java架构师必看的15本书

工具:推荐一款在线创作流程图、思维导图软件

分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。

最新文章

  1. The Non-Inverting Amplifier Output Resistance by Adrian S. Nastase [ Copied ]
  2. 使用EPPLUS操作EXcel
  3. LeetCode 刷题记录
  4. cocos2d-x读取xml(适用于cocos2d-x 2.0以上版本号)
  5. 用JQuery中的Ajax方法获取web service等后台程序中的方法
  6. 《Java程序员面试笔试宝典》之组合与继承有什么区别
  7. Spring+SpringMVC+MyBatis深入学习及搭建(十三)——SpringMVC入门程序(二)
  8. linux路由表
  9. 第七章· Redis Cluster 核心技术
  10. shell 脚本使用记录
  11. VMware与Centos系统安装 和重置root密码
  12. iOS常用的代码块整理
  13. MATLAB 提取头发(最大连通域)
  14. Palindrome Partitioning I & II
  15. 压力测试 JMeter3.3
  16. python qq邮箱发送邮件
  17. react native android模拟机调试
  18. mysql 在创建表或者插入时遇到关键字报错
  19. Spring Cloud实战之初级入门(五)— 配置中心服务化与配置实时刷新
  20. mysql8基本配置,差点被各种坑蒙圈

热门文章

  1. BUUCTF--easyer
  2. quotastats - 显示与配额子系统相关的统计信息
  3. KMP,Trie,AC自动机题目集
  4. center os 下redis安装以及基本使用
  5. html5 自制播放器
  6. 【串线篇】sql映射文件-分布查询(上)association 1-1
  7. bzoj3812 主旋律 容斥+状压 DP
  8. CSS9:动态 REM-手机专用的自适应方案
  9. maven之可执行jar包
  10. html插入链接的实现方法