当前位置: 首页 > news >正文

本地缓存的三种实现

本地缓存

本地缓存的实现

常见的本地缓存三种实现

  • 使用Java或自定义数据结构构造JVM本地缓存,大多数场景下ConcurrentHashMap就可以支持的很好

  • 使用Guava LoadingCache构造本地缓存,支持配置加载(LRU最近最少使用算法)

  • 使用Caffeine Cache构造本地缓存,它是对LoadingCache的优化(TinyLfu ,近似的LFU算法)

  • Caffeine: Caffeine 使用的缓存淘汰算法比 Guava 的 LRU 更先进、更复杂和高效。它基于 Window TinyLfu

    • TinyLfu (Tiny Least Frequently Used): 这是一种近似的 LFU (Least Frequently Used,最不常用) 算法,它通过一个紧凑的数据结构(如 Count-Min Sketch)来估计条目的访问频率,即使条目被淘汰后,它的频率信息也能保留一段时间。这使得 TinyLfu 对扫描抵抗(scan resistance)有更好的表现,即短暂的大量访问不会轻易冲垮整个缓存。

    • Window: Caffeine 将缓存分为一个小的“窗口”区域和一个大的“主”区域。新加入的条目首先进入窗口,窗口通常使用 LRU 进行管理。

    • Admission Policy (录取策略): 当窗口中的条目要进入主区域,或者有新条目要替换主区域中的条目时,Caffeine 会使用 TinyLfu 估算的频率信息来决定是否“录取”这个条目进入主区域,以及淘汰主区域中的哪个条目。主区域通常也使用 LRU 或类 LRU 策略进行管理。

相关文章:

  • Vxe UI vue vxe-table 实现表格数据分组功能,不是使用树结构,直接数据分组
  • 超标量处理器设计5-指令集体系
  • 力扣Hot100(Java版本)
  • upload-labs通关笔记-第3关 文件上传之黑名单绕过
  • 深度Q网络(DQN)的基本概念
  • Mirror的多人连接管理及房间系统
  • 第六节第二部分:抽象类的应用-模板方法设计模式
  • 为什么企业需要加密软件?
  • 经典中的经典-比特币白皮书中文版
  • B站PWN教程笔记-10
  • 集成设备管理(IDM)
  • uart16550详细说明
  • 【Canda】常用命令+虚拟环境创建到选择
  • 操作系统导论——第28章 锁
  • 根据输入的数据渲染柱形图
  • 2.重建大师输入输出数据格式介绍
  • 电池自动点焊机:多领域电池制造的核心设备
  • MCU程序加密保护(一)闪存读写保护法 加密与解密
  • nginx配置反向代理支持CORS跨域请求
  • Leetcode (力扣)做题记录 hot100(49,136,169,20)
  • 日月谭天丨这轮中美关税会谈让台湾社会看清了什么?
  • 北京航空航天大学首个海外创新研究院落户巴西
  • 香港根据《维护国家安全条例》订立附属法例
  • 西王食品连亏三年:主业齐“崩”,研发人员多为专科生
  • 刘国中:持续加强护士队伍建设,更好保障人民身体健康
  • 马上评丨摆摊要交芙蓉王?对吃拿卡要必须零容忍