【发布时间】:2016-02-04 17:47:39
【问题描述】:
有没有办法在不影响过期策略的情况下检查缓存中的条目(org.infinispan.Cache 实现)?
意思是,如果我配置了maxIdle,缓存操作的结果不会影响条目被驱逐的时间?
诸如EhcacheCache.getQuiet(Object key)之类的东西。
如果调用cache.containsKey,对闲置有影响吗?
【问题讨论】:
标签: java caching infinispan
有没有办法在不影响过期策略的情况下检查缓存中的条目(org.infinispan.Cache 实现)?
意思是,如果我配置了maxIdle,缓存操作的结果不会影响条目被驱逐的时间?
诸如EhcacheCache.getQuiet(Object key)之类的东西。
如果调用cache.containsKey,对闲置有影响吗?
【问题讨论】:
标签: java caching infinispan
关于寿命,从缓存中访问条目不会影响这一点。只有 maxIdle 受访问影响。
cache.containsKey 会影响最大空闲,它会被刷新。
不更新空闲状态的唯一方法是遍历条目或使用 peek 直接通过 DataContainer 访问条目(如图所示)。
DataContainer<K, V> container = cache.getAdvancedCache().getDataContainer();
InternalCacheEntry<K, V> entry = container.peek(key);
请注意,这可能不适用于分布式缓存,因为访问数据容器只会读取本地内容。虽然也提到了 max idle 不应该在集群缓存here 中使用,因为它不能保证跨集群刷新空闲。
【讨论】: