我无法理解ehCache中UpdateTimestampsCache的确切用法?我google了很多但除了下面的声明之外没有任何东西。
跟踪最新更新的时间戳到……
当您使用Hibernate查询缓存(即存储查询结果的缓存)时,它将使用此缓存存储表的最新更新的时间戳。然后,它可以比较每个表上次更新的时间和缓存查询结果的时间。如果查询的结果已缓存且表未更改,则可以安全地返回缓存的结果。另一方面,如果由于结果被缓存而导致查询中涉及的表发生了变化,我们无法确定结果是否仍然正确,缓存的结果将被丢弃并命中数据库。我希望这是有道理的。
知道,因为维护的成本 UpdateTimestampsCache ,使用查询缓存可能效率较低...尤其是在表中的数据变化很大的情况下......
UpdateTimestampsCache
UpdateTimestampsCache 仅在启用查询缓存时启用,因为它明确是使缓存的查询结果无效的一部分。在阅读缓存的查询结果时, UpdateTimestampsCache 检查使用查询结果缓存的时间戳,以及用于确定结果是否仍然有效的所有表的时间戳。因此,如果 UpdateTimestampsCache 发现表的时间戳比缓存的更新,然后它将使缓存查询无效。