1

我正在尝试使用https://github.com/ben-manes/caffeine构建缓存,我需要在启动期间获取所有条目,并且我事先不知道所有键。我的 CachLoader 有这样的东西,并试图在启动时缓存所有内容。但是,如果我想将所有条目预取到缓存中,看起来我需要事先知道所有的键?我错过了什么吗?

所以,假设我调用 cache.getAll(10) 并且只有 10-->100 将被缓存,即使 loadAll 方法返回 3 个条目 (10-->100, 20-->400, 30-->900)

@Override
public Map<Integer, Integer> loadAll(Iterable<? extends Integer> keys)
{
    // gets called for the keys which are not present in the cache only by getAll
    // we will load all keys irrespective of what is passed in
    System.out.println("in loadAll");
    // problem here is it is only caching the supplied keys
    Map<Integer, Integer> map = new HashMap<Integer, Integer>();
    map.put(10, 100);
    map.put(20, 400);
    map.put(30, 900);
    return map;
}   
4

0 回答 0