我現在的配置是下面,我打算只緩存多達30種元素和收回最早的之一,當數超過30:有沒有辦法配置ehcache只按時間順序緩存一些數量的元素?
<ehcache>
<diskStore path="/path/to/store/"></diskStore>
<cache name="myCache"
eternal="false"
maxEntriesLocalHeap="30"
maxEntriesLocalDisk="30"
memoryStoreEvictionPolicy="FIFO">
<persistence strategy="localTempSwap"/>
</cache>
</ehcache>
我有它運行的每一分鐘另一個計劃的作業放新元素放入緩存中。所以我預計最近30分鐘內只能獲得30個元素。 但是到期/驅逐並不如預期。一些非常古老的元素仍然保留着,而最近30分鐘內的一些元素卻被意外驅逐。我在這裏錯過了什麼嗎?
我已閱讀ehcache中的過期/驅逐相關文檔,但未找到任何線索。希望有人能幫助:)
BTW,該版本的Ehcache 2.6.6是
注意:您可以使用磁盤存儲中的數據重新啓動,您必須確保正確調用'CacheManager.shutdown()'方法。因此_restartable_,而不是_crash proof_。 –
@LouisJacomet是嗎?甚至使用'localTempswap'持久策略?我在ehcache doc中學到的是,只有'localRestartable'策略是可重新啓動的,並且僅適用於企業版。 –
@LouisJacomet我再次走過ehcache文檔,並且能夠確認持久性策略localTempSwap不是持久性的,因此無法重新啓動。 –