5.4.3. 最大闲置和集群缓存
因为最大空闲的过期时间依赖于缓存条目的最后访问时间,所以集群缓存模式有一些限制。
随着 lifespan 过期,缓存条目的创建时间提供了在集群缓存之间一致的值。例如,所有节点上的 k1 的创建时间始终都相同。
对于使用集群缓存的最大空闲过期时间,所有节点上的条目的最后访问时间并不总是相同。要确保在集群间有相同的相对访问时间,Data Grid 会在访问密钥时将 touch 命令发送到所有所有者。
数据网格发送的 touch 命令有以下考虑:
-
cache.get ()请求不会返回,直到所有 touch 命令都完成。这个同步行为会增加客户端请求的延迟。 - touch 命令还会更新 "recently accessed" 元数据,用于所有所有者上的缓存条目,以供数据网格用于驱除。
- 通过使用分散的缓存模式,数据网格将命令发送到所有节点,而不仅仅是主和备份所有者。
附加信息
- 最大空闲的过期时间无法用于无效的模式。
- 在集群缓存中迭代可能会返回超过最大空闲时间限制的过期条目。这个行为可确保性能,因为在迭代过程中不会执行任何远程调用。另请注意,迭代不会刷新任何过期的条目。