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 =

最低0.47元/天 解锁文章
927

被折叠的 条评论
为什么被折叠?



