java常用的缓存_java 常用缓存 - 只对肉有感觉的个人空间 - OSCHINA - 中文开源技术交流社区...
緩存是日常開發的粗茶淡飯,如果應用對某類數據有著較高的讀取頻次,并且改動較小時那就非常適合利用緩存來提高性能
JVM 緩存
使用全局變量,如 Map、List等容器用于存放數據,可以認為是堆緩存
ehcache
ehcache直接在jvm虛擬機中緩存,效率高速度快;集群分布式應用不方便。在vm重啟后,緩存的數據可以在機器重啟后從磁盤上重新獲得
OSCache 支持集群:集群緩存數據能被單個的進行參數配置,不需要修改代碼 緩存過期最大限度的控制緩存對象的過期,包括可插入式的刷新策略 緩存模式
Guava Cache
線程安全的也是堆內緩存。支持自動清除數據、多種清除算法、清除回調、定時失效等功能,提供了三種基本的緩存回收方式:基于容量回收、定時回收和基于引用回收。定時回收有兩種:按照寫入時間,最早寫入的最先回收;按照訪問時間,最早訪問的最早回收
分布式緩存
常用Redis、Memcached、Geode 等等,為防止單點故障,一般在高并發系統中使用 Redis與MemCache的區別
線程操作 Redis是單線程操作,每次只處理一個請求 Memcache使用多核,多線程操作,可以同時處理多個請求。
數據結構
Redis 支持
String:字符串類型
List:列表類型
Set:無序集合類型
ZSet:有序集合類型
Hash:哈希表類型等數據結構的存儲。
memcached 只能保存【key/value】
數據安全性 Redis和MemCache都將數據存儲在內存中。但是MemCache服務宕機或重啟后數據是不可恢復的,而Redis服務宕機或重啟后可以恢復,可以將內存數據定期同步到磁盤中,Redis提供兩種持久化策略,默認支持的是RDB持久化以及需要手工開啟的AOF持久化。
數據備份 Redis支持數據備份,需開啟master-slave主從策略。
過期策略 MemCache 在set時就指定了過期時間 Redis 可以通過expire設置Key的過期時間。
內存回收 MemCache有內存回收機制,當程序中設置內存大小,一旦存儲的數據超過時自動回收,不然會出現內存溢出的情況。 Redis 將數據持久化到磁盤上,不會出現這種情況
總結
以上是生活随笔為你收集整理的java常用的缓存_java 常用缓存 - 只对肉有感觉的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实例 87,88
- 下一篇: 【youcans 的 OpenCV 例程