fra*_*lic 6 java caching guava
我使用CacheBuilder和LoadingCache来实现数据库数据的内存缓存.
假设客户端在缓存中查询后备存储中不存在的项.我希望客户端知道没有找到指定密钥的数据.处理此问题的最佳方法是什么?
Emi*_*ily 10
我总是通过以下方式解决这个问题.
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();
}
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,您可以将KeyValueService的接口更改为始终返回Optional,但有时这是不可能的.
您可以使用权重来快速驱逐所有Optional.ABSENT引用.
| 归档时间: |
|
| 查看次数: |
4140 次 |
| 最近记录: |