Guava Cache 高性能本地缓存库详解与使用案例

Guava Cache 高性能本地缓存库详解与使用案例


一、Guava Cache 简介

1.1 什么是 Guava Cache?

Guava Cache 是 Google 提供的 Java 本地缓存库,是 Google Guava 工具库的一部分。它提供了灵活且高效的缓存管理功能,适用于需要高性能、低延迟的本地缓存场景。核心特性包括:

  • 基于大小和时间的缓存驱逐
  • 软引用/弱引用支持
  • 缓存统计(命中率、加载次数等)
  • 手动刷新与异步加载
  • 缓存监听器

Guava Cache 适用于单体应用、微服务中的本地缓存需求,尤其适合对缓存性能要求较高的场景。


二、核心特性详解

2.1 依赖引入

Maven
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.1-jre</version>
</dependency>
Gradle
implementation 'com.google.guava:guava:31.1-jre'

2.2 缓存构建器 CacheBuilder

Guava Cache 的核心是通过 CacheBuilder 构建缓存实例,支持链式配置。

2.2.1 基本缓存创建
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;

Cache<String, String> cache = CacheBuilder.newBuilder()
.maximumSize(100)// 最大缓存大小
.build();
2.2.2 基于时间的过期策略
  • 写入后过期(expireAfterWrite):元素在写入后指定时间过期。
  • 访问后过期(expireAfterAccess):元素在最后一次访问后指定时间过期。
Cache<String, String> cache = CacheBuilder.newBuilder()
.maximumSize(100)
.expireAfterWrite(10, TimeUnit.MINUTES)// 写入后10分钟过期
.expireAfterAccess(5, TimeUnit.MINUTES)// 最后一次访问后5分钟过期
.build();
2.2.3 基于大小的驱逐策略

Guava 使用 LRU(Least Recently Used) 算法管理缓存大小。

Cache<String, String> cache = CacheBuilder.newBuilder()
.maximumSize(1000)// 缓存最多存储1000个元素
.build();
2.2.4 软引用/弱引用
  • 软引用(Soft References):在 JVM 内存不足时回收。
  • 弱引用(Weak References):在下一次 GC 时回收。
Cache<String, String> cache = 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lisonseekpan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值