我的用例是在持久數據庫中存儲的數據上維護內存中高速緩存。在Java中實現定期刷新高速緩存
我用數據來填充的UI項的列表/地圖。在任何時候,UI上顯示的數據應該儘可能更新(這可以通過緩存的刷新頻率來完成)。常規的緩存實現這個特定的緩存之間
主要區別在於,它需要定期的所有元素的批量刷新,因此是從LRU一種高速緩存的有很大不同。
我需要做在Java中這種實現,如果有可利用來得到這個圍繞他們所建立的任何現有的框架也將是巨大的。
我已經探索了谷歌番石榴緩存庫,但它更適合於每個條目刷新,而不是批量刷新。沒有簡單的API在整個緩存中進行刷新。
任何幫助將不勝感激。另外,如果可以遞增地進行刷新,它應該是很棒的,因爲刷新整個緩存時出現的唯一限制是如果緩存非常大,那麼內存堆至少應該是兩次緩存的大小,以加載新的條目,並用新的地圖替換舊的地圖。如果緩存是增量式的,或者存在分塊刷新(以相同大小刷新),那將會很好。
@ jtahlborn - EhCache的BulkLoader API(http://ehcache.org/documentation/apis/bulk-loading)很有幫助,但如果它提供了一個refreshTime或週期性間隔時間選項,它本身可以管理它高速緩存刷新的調度。無論如何,它總是可以通過外部調度程序並定期調用批量加載API來實現。感謝你的回答。 –
對於EHCache,請參閱:http://www.ehcache.org/documentation/3.3/thread-pools.html和http://terracotta.org/documentation/4.1/bigmemorymax/api/bulk-loading – Aliuk
但是。 .sn't生存時間只是從緩存中刪除元素?它和你在這裏寫的不一樣 - 「自動重新加載」 – javagirl