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