咖啡因缓存未从内存加载

时间:2017-05-19 18:35:51

标签: caching caffeine

我们正在使用咖啡因进行缓存。设置似乎很简单。我们按以下方式设置缓存

LoadingCache<Triple<Long, Long, Long>, Result> cache = Caffeine.newBuilder()
            .maximumSize(1000)
            .refreshAfterWrite(240, TimeUnit.MINUTES)
            .build(new CacheDataLoader());

public class CacheDataLoader implements CacheLoader<Triple<Long, Long, Long>, Result>  {
    @Override
    public Result load(@Nonnull Triple<Long, Long, Long> id) throws Exception 
    {
      -------
    }

    @Override
    public Result reload(@Nonnull Triple<Long, Long, Long> id, @Nonnull Result oldValue) throws Exception {
       ---------
    }
}

当我们执行cache.get(id)时,它始终会触发load中将从数据库加载的CacheDataLoader函数。结果,数据永远不会从内存中获取。根据文档,仅当请求的密钥不在内存中时才应触发load。这不正确吗?我们如何配置缓存有什么问题。

感谢任何见解。

感谢。

0 个答案:

没有答案