gpt4 book ai didi

java - Guava LoadingCache - 如何处理后备存储中不存在的键

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:16 27 4
gpt4 key购买 nike

我正在使用 CacheBuilderLoadingCache实现数据库数据的内存缓存。

假设客户端在缓存中查询后备存储中不存在的项目。我想让客户端知道没有找到指定键的数据。处理此问题的最佳方法是什么?

  • 在缓存中存储特殊值,表示“无数据”。
  • 不在缓存中存储任何内容并引发异常。
  • 其他想法?

最佳答案

我总是通过以下方式解决这个问题。

interface KeyValueService<K,V> {
V get(K key);
}

class CachingKeyValueService<K,V> {
Cache<K,Optional<V>> cache;
V get(K key) {
return cache.get(key).orNull();
}

}

理想情况下,您可以将 KeyValueService 的接口(interface)更改为始终返回 Optional,但有时这是不可能的。

您可以使用权重来快速驱逐所有 Optional.ABSENT 引用。

关于java - Guava LoadingCache - 如何处理后备存储中不存在的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11018503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com