我正在使用hibernate二级缓存机制(ehcache)。我将缓存时间设为10秒,如下所示
<cache name="employee" maxEntriesLocalHeap="10000" eternal="false"
timeToIdleSeconds="10" timeToLiveSeconds="10">
<persistence strategy="localTempSwap"/>
</cache>
如果假设数据库中的数据在10秒的缓存时间内更新,我将获得最新数据或捕获数据吗?如何处理这种情况?
答案 0 :(得分:1)
由于您使用的是具有生存时间和空闲时间的缓存,因此该条目在缓存中保持有效,只要它每10秒至少访问一次。
鉴于您描述的情况,我强烈建议不要使用TTI。
至于更通用的答案:当您激活缓存时,您会打开一个不一致的窗口。如果您的应用程序逻辑无法应对它,您需要立即实施一个无效机制,以便从缓存中急切地刷新条目。
然而,没有标准的方法可以做到这一点,因此它成为你的责任。