如何从loadcache获取而不触发加载

时间:2015-10-30 15:47:18

标签: java google-guava-cache

我正在使用java 8和guava 14.0

我使用load()设置了一个LoadingCache和一个CacheLoader。每次从缓存中调用load()时,代码都会起作用

有时我想检查数据是否在缓存中而不调用load()。这可能吗?

我尝试使用getIfPresent(),但我仍然看到正在调用load()。

我正在查看AsMap但是因为它从缓存中获取所有数据而关注它的大小

提前感谢您提供任何信息/建议

百里

1 个答案:

答案 0 :(得分:0)

我不确定你对asMap的关注点是什么;返回视图,而不是整个副本;使用asMap的成本是O(1)。也就是说,令我惊讶的是getIfPresent仍会造成负担;这让我怀疑你的程序的其他部分正在调用load,因为getIfPresent不应该导致这种情况发生。