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();
相关推荐
优雅的潮叭12 分钟前
cud编程之 reduce
android·redis·缓存
qq_124987075313 分钟前
基于Srpingboot心晴疗愈社平台的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·spring·microsoft·毕业设计·计算机毕业设计
大爱编程♡13 分钟前
SpringBoot统一功能处理
java·spring boot·后端
打工的小王26 分钟前
redis(三)redis持久化和集群(redis版本:5.0.4)
数据库·redis·缓存
leiming638 分钟前
FreeRTOS 的任务与 Linux
java·开发语言
小马爱记录40 分钟前
枚举策略驱动
java
马猴烧酒.1 小时前
【JAVA数据传输】Java 数据传输与转换详解笔记
java·数据库·笔记·tomcat·mybatis
爱编码的傅同学1 小时前
【常见锁的概念】死锁的产生与避免
java·开发语言
rabbit_pro2 小时前
SpringBoot3使用PostGis+GeoTools整合MybatisPlus
java·spring
望眼欲穿的程序猿2 小时前
Ai8051U+DHT11温湿度!
java·开发语言