我正在尝试使用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;
}