1 Maven 依赖
引入pom依赖:
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>3.1.6</version>
</dependency>
或者直接观察当前 SpringBoot 自带版本:
2.2 基本用法
import com.github.benmanes.caffeine.cache.Caffeine;
public class CaffeineExample {
public static void main(String[] args) {
// 创建一个缓存实例
Caffeine<String, String> caffeineCache = Caffeine.newBuilder().build();
// 向缓存中放入数据
caffeineCache.put("公众号", "JavaEdge");
// 从缓存中获取数据
String value = caffeineCache.getIfPresent("公众号");
System.out.println("Value for 公众号: " + value);
}
}
3 高级用法
3.1 自定义缓存策略
通过expireAfterWrite
、expireAfterAccess
等方法自定义缓存项的过期策略。
Caffeine<String, String> caffeineCache = Caffeine.newBuilder()
.expireAfterWrite(10, TimeUnit.MINUTES)
.build();
3.2 异步加载
Caffeine<String, CompletableFuture<String>> caffeineCache = Caffeine.newBuilder()
.buildAsync(key -> CompletableFuture.supplyAsync(() -> loadDataFromDatabase(key)));
4 性能调优
根据实际需求进行配置,例如缓存的最大大小、刷新策略。
Caffeine<String, String> caffeineCache = Caffeine.newBuilder()
.maximumSize(1000)
.recordStats() // 启用统计信息
.build();
5 总结
参考
- 官方文档
- https://github.com/ben-manes/caffeine/wiki/Roadmap-zh-CN
- https://github.com/ben-manes/caffeine