我正在尝试使用Caffeine缓存。如何使用Java为Caffeine缓存创建对象?我现在没有在我的项目中使用任何Spring。
答案 0 :(得分:1)
基于Caffeine的official repository和wiki,Caffeine是一个基于Java 8的高性能缓存库,提供接近最佳的命中率。它的灵感来自于Google Guava。
因为Caffeine是一个内存缓存,所以实例化缓存对象非常简单。
例如:
LoadingCache<Key, Graph> graphs = Caffeine.newBuilder()
.maximumSize(10_000)
.expireAfterWrite(5, TimeUnit.MINUTES)
.refreshAfterWrite(1, TimeUnit.MINUTES)
.build(key -> createExpensiveGraph(key));
查找条目,如果未找到则为null:
Graph graph = graphs.getIfPresent(key);
查找并计算条目(如果不存在),如果不可计算则为null:
graph = graphs.get(key, k -> createExpensiveGraph(key));
注意:createExpensiveGraph(key)
可能是数据库获取者或实际的计算图。
插入或更新条目:
graphs.put(key, graph);
删除条目:
graphs.invalidate(key);
修改强>: 感谢@ BenManes的建议,我正在添加依赖项:
修改您的pom.xml
并添加:
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>1.0.0</version>
</dependency>