功能一览
Caffeine 提供了灵活的构造来创建具有以下功能组合的缓存:
自动将条目自动加载到缓存中,可以选择异步加载
基于频率和新近度超过最大值时基于大小的逐出
自上次访问或上次写入以来测得的基于时间的条目到期
发生第一个陈旧的条目请求时,异步刷新
键自动包装在弱引用中
值自动包装在弱引用或软引用中
逐出(或以其他方式删除)条目的通知
写入传播到外部资源
缓存访问统计信息的累积
Caffeine 是基于 Java 8 的高性能,接近最佳的缓存库。
Caffeine 使用 Google Guava 启发的 API 提供内存缓存。 改进取决于您设计 Guava 缓存和 ConcurrentLinkedHashMap 的体验。
LoadingCache<Key, Graph> graphs = Caffeine.newBuilder()
.maximumSize(10_000)
.expireAfterWrite(5, TimeUnit.MINUTES)
.refreshAfterWrite(1, TimeUnit.MINUTES)
.build(key -> createExpensiveGraph(key));