有没有办法在不影响过期策略的情况下检查缓存中的条目(org.infinispan.Cache
实现)?
意思是,如果我已配置maxIdle
,缓存操作的结果不会影响该条目将被驱逐的时间?
Ehcache
Cache.getQuiet(Object key)
等内容。
如果拨打cache.containsKey
,是否会对闲置有影响?
答案 0 :(得分:4)
关于生命周期,从缓存访问条目不会影响这一点。只有maxIdle受访问影响。
cache.containsKey
会影响最大空闲时间,并且会刷新。
不更新空闲的唯一方法是迭代条目或使用peek直接通过DataContainer访问条目(如此处所示)。
DataContainer<K, V> container = cache.getAdvancedCache().getDataContainer();
InternalCacheEntry<K, V> entry = container.peek(key);
请注意,对于分布式缓存,这可能无法正常工作,因为访问数据容器只会读取本地内容。虽然还提到最大空闲不应该在群集缓存here中使用,因为不能保证跨群集刷新空闲。