预取java缓存中的所有条目

预取java缓存中的所有条目,java,caching,caffeine,Java,Caching,Caffeine,我正在尝试使用构建一个缓存,我需要在启动时获取所有条目,但我并不知道所有的密钥。我的CachLoader有这样的功能,并试图在启动时缓存所有内容。但如果我想将所有条目预取到缓存中,我需要事先知道所有的密钥?我遗漏了什么吗 因此,假设我调用cache.getAll(10),即使loadAll方法返回3个条目(10-->100、20-->400、30-->900),也只缓存10-->100 @覆盖 public Map loadAll(IterableWhat is your specific qu

我正在尝试使用构建一个缓存,我需要在启动时获取所有条目,但我并不知道所有的密钥。我的CachLoader有这样的功能,并试图在启动时缓存所有内容。但如果我想将所有条目预取到缓存中,我需要事先知道所有的密钥?我遗漏了什么吗

因此,假设我调用cache.getAll(10),即使loadAll方法返回3个条目(10-->100、20-->400、30-->900),也只缓存10-->100

@覆盖

public Map loadAll(IterableWhat is your specific question?我的问题是,我是否需要事先知道所有可能的键,以便可以预取所有可能的条目?
loadAll
将返回比请求的键更大的映射,并将缓存所有键(但仅返回请求的条目)。如果你想加载所有内容,那么你可能没有键值缓存和Guava的
供应商。请记住,Exption
可能更适合。非常感谢你的回复Ben。看起来我不需要知道所有可能的键。我可以传入一个假键,然后将它们全部加载到loadAll()中您的具体问题是什么?我的问题是,我是否需要事先知道所有可能的密钥,以便可以预取所有可能的条目?
loadAll
将返回比请求的密钥更大的映射,并且所有密钥都将被缓存(但仅返回请求的条目)。如果你想加载所有内容,那么你可能没有键值缓存和Guava的
供应商。请记住,Exption
可能更适合。非常感谢你的回复Ben。看起来我不需要知道所有可能的键。我可以传入一个假键,然后将它们全部加载到loadAll()中
@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;
}