mapdb的適用場景介紹


  對於大部分系統來說,mapdb(而且新版本還依賴於kotlin,增加了不少額外的jar)並無太大價值,而且增加了成本。但是如果一級緩存巨大例如數以十GB級別,或占據了整個JVM的1/2以上,mapdb的價值就會體現出來。正如其官網介紹:

  MapDB provides Java Maps, Sets, Lists, Queues and other collections backed by off-heap or on-disk storage. It is a hybrid between java collection framework and embedded database engine.

  使用MapDB存儲map后,jvm gc的壓力就會大大減少(在大數據中,gc甚至可能停頓超過1分鍾,沒看錯,導致應用完全無響應)。但是因為堆外存儲的都是字節形式,所以會增加序列化和反序列化的資源消耗,這個時候二進制而非json的序列化算法就非常重要了,包括性能以及大小,如flatbuffer、kryo。所以,更好的做法是常用的在堆內存儲、不常用的在堆外存儲,可能這個時候ehcache就是一種更好的選擇。

  具體使用可參考:http://www.mapdb.org/down/mapdb-manual-20.pdf,https://labs.consol.de/java-caches/,https://hazelcast.com/resources/benchmark-infinispan/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM