如何使用Java创建CaffeineCache对象?

时间:2017-03-20 10:00:17

标签: java object caffeine

我正在尝试使用Caffeine缓存。如何使用Java为Caffeine缓存创建对象?我现在没有在我的项目中使用任何Spring。

1 个答案:

答案 0 :(得分:1)

基于Caffeine的official repositorywiki,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));
  1. 查找条目,如果未找到则为null:

    Graph graph = graphs.getIfPresent(key);
    
  2. 查找并计算条目(如果不存在),如果不可计算则为null:

    graph = graphs.get(key, k -> createExpensiveGraph(key));

    注意:createExpensiveGraph(key)可能是数据库获取者或实际的计算图。

  3. 插入或更新条目:

    graphs.put(key, graph);
    
  4. 删除条目:

    graphs.invalidate(key);
    
  5. 修改: 感谢@ BenManes的建议,我正在添加依赖项:

    修改您的pom.xml并添加:

    <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
        <version>1.0.0</version>
    </dependency>