緩存的幾種備選方案

一、本地緩存
本地緩存即In-Memory cache:通常直接存儲Object,最輕量級的緩存,速度最快,但JVM堆內存一般不大(由於JVM內存回收機制受限制),並且受到GC的控制,JVM堆內緩存數量受限制,緩存命中率也所以受到影響。

二、堆外緩存
堆外緩存,即In-process off-heap cache:典型的實現方案是terracotta的bigmemory。堆外緩存經過DirectBuffer繞過JVM直接獲取os內存,須要序列化爲byteArray存儲,所以速度會比In memory的Object Cache速度慢。堆外緩存不受GC影響,在系統內存充足的時候能夠建立足夠大的緩存。但須要自行管理內存的回收、碎片整理和內存換入換出問題。

三、磁盤緩存
磁盤緩存:將緩存持久化到硬盤上,容量能夠更大,但須要序列化,並且寫文件IO開銷很大,速度更低。能夠和前兩種緩存結合起來解決應用重啓緩存冷啓動的問題。

四、集中式/分佈式緩存
集中式/分佈式緩存:容量不受限制,網絡通訊一般要比磁盤IO速度略快(還要取決於什麼樣的磁盤和網絡),沒有冷啓動問題,須要通訊開銷和序列化開銷。
緩存

相關文章
相關標籤/搜索