【问题标题】:How to get from the loadingcache without triggering a load如何在不触发加载的情况下从加载缓存中获取
【发布时间】:2015-10-30 15:47:18
【问题描述】:

我正在使用 java 8 和 guava 14.0

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

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

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

我正在查看 AsMap,但担心它的大小,因为它从缓存中获取所有数据

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

巴里

【问题讨论】:

    标签: java google-guava-cache


    【解决方案1】:

    我不确定您对asMap 有什么顾虑;返回一个view,而不是一个完整的副本;使用asMap 的成本为 O(1)。也就是说,令我惊讶的是getIfPresent 仍然会导致负载;这让我怀疑你程序的其他部分正在调用 load,因为 getIfPresent 不应该导致这种情况发生。

    【讨论】:

      猜你喜欢
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 2013-11-21
      • 1970-01-01
      • 2018-05-08
      • 1970-01-01
      相关资源
      最近更新 更多