EhCache 配置文件中的 UpdateTimestampsCache 需要什么?

What is the need of UpdateTimestampsCache in EhCache configuration file?

我无法理解 ehCache 中 UpdateTimestampsCache 的确切用法?我在谷歌上搜索了很多,但除了下面的声明外什么都没有。

跟踪特定表的最新更新的时间戳。

但是UpdateTimestampsCache在二级缓存中的作用是什么?

当您使用 Hibernate 查询缓存(即存储查询结果的缓存)时,它将使用此缓存存储最近更新到 table 的时间戳。然后它可以比较每个 table 最后更新的时间和查询结果被缓存的时间。如果查询的结果被缓存并且 tables 没有改变,那么 return 缓存的结果是安全的。另一方面,如果在缓存结果后查询中涉及的 table 发生了变化,我们无法确定结果是否仍然正确,缓存的结果将被丢弃并命中DB 而不是...我希望这有一定道理。

请注意,由于维护 UpdateTimestampsCache 的成本,使用查询缓存的效率可能较低...尤其是在 table 中的数据变化很大的情况下。 ..

UpdateTimestampsCache 仅在启用查询缓存时启用,因为它明确是使缓存查询结果无效的一部分。读取缓存的查询结果时,UpdateTimestampsCache 会检查与查询结果一起缓存的时间戳与它用来确定结果是否仍然有效的所有 table 的时间戳。因此,如果 UpdateTimestampsCache 发现 table 的时间戳比缓存的时间戳新,那么它将使缓存查询无效。