Cache 缓存实现类简单使用

Cache 缓存实现类

拿来当Redis用就行了,不过Hutool 缓存库主要是为了实现本地缓存;用在数据量不大,短期频繁访问的数据。

  1. FIFO(先进先出)缓存:按照数据进入缓存的顺序,最先进入缓存的数据会被最先移除。适用于简单的缓存场景,不考虑数据的访问频率。
  2. LFU(最不经常使用)缓存:根据数据的访问频率,最不经常使用的数据会被移除。适用于对缓存的访问模式有较好了解的场景。
  3. LRU(使用最近最少使用):LRU 缓存是一种缓存替换策略,当缓存达到其最大容量时,它会移除最近最少使用的条目,以便为新条目腾出空间。
  4. MRU(最近最常使用)缓存:根据数据的访问模式,最近最常使用的数据会被保留。适用于对缓存的访问模式有较好了解的场景。
  5. LFU-K 缓存:LFU-K 是 LFU 缓存的改进版本,它不仅考虑数据的访问频率,还考虑了最近的访问时间。这可以更准确地判断哪些数据应该被保留。
  6. ARC(Adaptive Replacement Cache)缓存:ARC 缓存结合了 LRU 和 LFU 的思想,根据最近的访问模式和频率自适应地调整缓存策略。适用于高性能和复杂的缓存场景。
  7. 二级缓存:同时使用多种不同类型的缓存,如本地内存缓存和分布式缓存,以提供更灵活和高效的缓存策略。

FIFOCache

先进先出,队列。主打一个公平公正。

因此先进去的先存储,然后缓存达到容量限制,最先进去的就被最先移除。

java 复制代码
import cn.hutool.cache.Cache;
import cn.hutool.cache.impl.FIFOCache;

private final Cache<, > cache = new FIFOCache<>(10);

cache.put();
cache.get();
cache.remove();

LRUCache

最近最少使用。(最近的访问时间)

当缓存达到其容量限制时,LRU 缓存会优先移除最近最少访问的条目

java 复制代码
import cn.hutool.cache.Cache;
import cn.hutool.cache.impl.LRUCache;

private final Cache<, > cache = new LRUCache<>(10);

cache.put();
cache.get();
cache.remove();

LFUCache

最不经常使用。

与LRU相比,它更看重访问频率。当缓存达到其容量限制时,LFU 缓存会优先移除访问频率最低的数据。

java 复制代码
import cn.hutool.cache.Cache;
import cn.hutool.cache.impl.LFUCache;

private final Cache<, > cache = new LFUCache<>(10);

cache.put();
cache.get();
cache.remove();
相关推荐
J2虾虾4 小时前
Spring Boot实现发邮件功能
java·spring boot·spring
8Qi84 小时前
LeetCode 295:数据流的中位数(Median Finder)—— Java 题解 ✅
java·算法·leetcode·优先队列··中位数
competes4 小时前
数据查询方式最左匹配原则
java·大数据·前端·人工智能·windows
❀͜͡傀儡师4 小时前
告别脚手架:用 JBang 打通 Java、Kotlin、Python 的脚本化开发
java·python·kotlin·jbang
学计算机的计算基4 小时前
MySQL 锁体系全解:从 MDL 到间隙锁,一次讲透
java·数据库·笔记·python·mysql
jjjava2.04 小时前
全面拆解 Java 锁:分类辨析 + 底层原理精讲
java·开发语言
曹牧4 小时前
Java:import NeverUsed
java·开发语言·log4j
之歆4 小时前
在 IntelliJ IDEA 里复刻 Cursor 式内联审查:架构复盘-从放弃到拾起:如何用 LineStatusTracker 拯救一个烂掉的项目
java·架构·intellij-idea
jeffer_liu4 小时前
Spring AI 生产级实战-结构化输出
java·人工智能·后端·spring·大模型
疏狂难除4 小时前
JetBrains IDE插件开发教程(四)——Action
java·ide·kotlin