Infinispan 2LC:包含查询缓存

时间:2017-05-05 09:17:29

标签: infinispan wildfly-10 second-level-cache

我有entity A,定义为@Cacheable。我有查询缓存加载entity A在指定的缓存区域下说" regionA"。这是通过setHint并启用缓存来完成的。

对于wildfly中的设置,regionA配置为没有evictionexpiration为1天,其中entity缓存具有默认{ {1}}和eviction如下所示。

expiration

现在,如果我第一次执行,则没有查询缓存结果,因此运行SQL来获取实体。在第二次运行后,3rds似乎是从缓存 <local-cache name="entity"> <transaction mode="NON_XA"/> <eviction strategy="LRU" max-entries="10000"/> <expiration max-idle="1000000"/> </local-cache> <local-cache name="local-query"> <eviction strategy="LRU" max-entries="10000"/> <expiration max-idle="100000"/> </local-cache> <local-cache name="regionA" statistics-enabled="true"> <eviction strategy="NONE" max-entries="-1"/> <expiration lifespan="86400000" max-idle="14400000"/> </local-cache> 中获取的,因此可以。但是在18小时后,我尝试运行相同的查询,看起来再次运行查询。

但我想如果查询缓存配置为&#34; 1天&#34;到期,为什么它再次运行regionA?是因为那个SQL缓存到期了吗?那么entity缓存不会采用特定于缓存区域的设置? 如何区分存储在特定缓存区域中的这些实体遵循区域特定设置。

感谢。

1 个答案:

答案 0 :(得分:3)

您有max-idle="14400000"这意味着如果查询在过去4小时内未执行,则缓存的结果将过期。