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();
相关推荐
·薯条大王5 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
ZJH__GO8 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
程序员黑豆8 小时前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程
命运之光8 小时前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
凤山老林8 小时前
Spring Boot @Async 线上实战:从默认配置到生产级线程池治理
java·spring boot·后端
marvelyu9 小时前
每天10分钟学会OceanBase系列(Day 20):跨机房容灾实战——构建多数据中心高可用架构
java·大数据·数据库
AI人工智能+电脑小能手10 小时前
大白话说Java设计模式-04-工厂方法模式(业务实战篇)
java·设计模式·工厂方法模式·架构设计·代码解耦
BUG指挥官10 小时前
Sa-Token和Spring Security对比
java·后端·spring
小当家.10510 小时前
深入理解 ReAct Agent:从原理到 Java 实战
java·react.js·agent·react·架构设计·agent设计
geminigoth10 小时前
Spring AI Alibaba 入门开发一(备份)
java·人工智能·spring