[英]When to use Ehcache and Hash map for caching data?
我有課程,其中定義了主要方法。 當我運行這個類時,它會從帳戶表中加載帳戶數據並在我的主類中填充一個全局變量。 現在我的項目中的要求是,可以在飛行中更新帳戶表。 為了處理這個問題,我訂閱了帳戶表上最后更新的時間戳,並用它來檢查哈希表中的數據是否是最新的。
建議在這里使用hashMap嗎? 在我的主程序中使用ehcache或hashmap是不一樣的。 兩者都在我的JVM中占用相同的空間。 我試圖了解何時在java程序中使用hashMap以及何時使用Ehcache
HashMap
不是並發的。 所以你無法更新它。 ConcurrentHashMap
是。 所以你想要那個。
Ehcache(on-heap)是一個ConcurrentHashMap
具有到期和驅逐處理功能。
它也符合JSR107標准,因此可以更輕松地使用許多框架進行透明緩存。
但是如果你知道你的地圖中會有多少元素。 而且你知道它們永遠不會過期,除非你替換它們,然后ConcurrentHashMap
會做你需要的。
最重要的是,Ehcache是一個增強的ConcurrentHashMap
。
使用EhCache,因為它可以像HashMap一樣工作,同時可以更改它的配置。
雖然數據集很小,但將它完全加載到內存(HashMap)中可能是可行的,否則你必須決定要為它分配多少內存,而你必須保留一些其他內容。
這就是EhCache派上用場的地方:
而HashMap:
有時,緩存包含不是最新的數據(在沒有應用程序知識的情況下操作bug或DB)。 如果沒有清理機制,HashMap將保留該數據。 雖然EhCache有機會(TTL,TTI)刪除它並在必要時加載最新數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.