我无法理解ehCache中UpdateTimestampsCache的确切用法?我搜索了很多东西但除了下面的陈述之外什么都没有。
跟踪特定表格的最新更新的时间戳。
但是UpdateTimestampsCache在二级缓存中的作用是什么?
答案 0 :(得分:6)
当您使用Hibernate查询缓存(即存储查询结果的缓存)时,它将使用此缓存存储表的最新更新的时间戳。然后,它可以比较每个表上次更新的时间和缓存查询结果的时间。如果查询结果已缓存且表格未更改,则可以安全地返回缓存结果。另一方面,如果查询中涉及的表发生了更改,因为结果已缓存,我们无法确定结果是否仍然正确,缓存的结果将被丢弃并命中DB ......我希望这是有道理的。
要知道,由于维护data.table
的成本,使用查询缓存可能效率较低...尤其是在表中的数据变化很多的情况下......
答案 1 :(得分:1)
UpdateTimestampsCache
仅在启用查询缓存时启用,因为它明确是使缓存的查询结果无效的一部分。读取缓存的查询结果时,UpdateTimestampsCache
将查询结果缓存的时间戳与其用于确定结果是否仍然有效的所有表的时间戳进行对照。因此,如果UpdateTimestampsCache
发现表的时间戳比缓存的时间戳新,则它将使缓存查询无效。