EhCache 是一個純Java的進程內緩存框架,具備快速、精幹等特色,是hibernate中默認的CacheProviderjava
Ehcache是一種普遍使用的開源Java分佈式緩存。主要面向通用緩存,Java EE和輕量級容器。它具備內存和磁盤存儲,緩存加載器,緩存擴展,緩存異常處理程序,一個gzip緩存servlet過濾器,支持REST和SOAP api等特色。mysql
Ehcache最初是由Greg Luck於2003年開始開發。2009年,該項目被Terracotta購買。軟件仍然是開源,但一些新的主要功能(例如,快速可重啓性之間的一致性的)只能在商業產品中使用,例如Enterprise EHCache and BigMemory。,維基媒體Foundationannounced目前使用的就是Ehcache技術。web
主要的特性有:redis
1. 快速算法
2. 簡單sql
3. 多種緩存策略mongodb
4. 緩存數據有兩級:內存和磁盤,所以無需擔憂容量問題apache
5. 緩存數據會在虛擬機重啓的過程當中寫入磁盤api
6. 能夠經過RMI、可插入API等方式進行分佈式緩存緩存
7. 具備緩存和緩存管理器的偵聽接口
8. 支持多緩存管理器實例,以及一個實例的多個緩存區域
9. 提供Hibernate的緩存實現
Ehcache 在java項目普遍的使用。它是一個開源的、設計於提升在數據從RDBMS中取出來的高花費、高延遲採起的一種緩存方案。正由於Ehcache具備健壯性(基於java開發)、被認證(具備apache 2.0 license)、充滿特點(稍後會詳細介紹),因此被用於大型複雜分佈式web application的各個節點中。 1. 夠快 Ehcache的發行有一段時長了,通過幾年的努力和不可勝數的性能測試,Ehcache終被設計於large, high concurrency systems. 2. 夠簡單 開發者提供的接口很是簡單明瞭,從Ehcache的搭建到運用運行僅僅須要的是你寶貴的幾分鐘。其實不少開發者都不知道本身用在用Ehcache,Ehcache被普遍的運用於其餘的開源項目 好比:hibernate 3.夠袖珍 關於這點的特性,官方給了一個很可愛的名字small foot print ,通常Ehcache的發佈版本不會到2M,V 2.2.3 才 668KB。 4. 夠輕量 核心程序僅僅依賴slf4j這一個包,沒有之一! 5.好擴展 Ehcache提供了對大數據的內存和硬盤的存儲,最近版本容許多實例、保存對象高靈活性、提供LRU、LFU、FIFO淘汰算法,基礎屬性支持熱配置、支持的插件多 6.監聽器 緩存管理器監聽器 (CacheManagerListener)和 緩存監聽器(CacheEvenListener),作一些統計或數據一致性廣播挺好用的 如何使用? 夠簡單就是Ehcache的一大特點,天然用起來just so easy! redis redis是在memcache以後編寫的,你們常常把這二者作比較,若是說它是個key-value store 的話可是它具備豐富的數據類型,我想暫時把它叫作緩存數據流中心,就像如今物流中心那樣,order、package、store、classification、distribute、end。如今還很流行的LAMP PHP架構 不知道和 redis+mysql 或者 redis + mongodb的性能比較(聽羣裏的人說mongodb分片不穩定)。 先說說reidis的特性 1. 支持持久化 redis的本地持久化支持兩種方式:RDB和AOF。RDB 在redis.conf配置文件裏配置持久化觸發器,AOF指的是redis沒增長一條記錄都會保存到持久化文件中(保存的是這條記錄的生成命令),若是不是用redis作DB用的話還會不要開AOF ,數據太龐大了,重啓恢復的時候是一個巨大的工程! 2.豐富的數據類型 redis 支持 String 、Lists、sets、sorted sets、hashes 多種數據類型,新浪微博會使用redis作nosql主要也是它具備這些類型,時間排序、職能排序、個人微博、發給個人這些功能List 和 sorted set 的強大操做功能息息相關 3.高性能 這點跟memcache很想象,內存操做的級別是毫秒級的比硬盤操做秒級操做天然高效很多,較少了磁頭尋道、數據讀取、頁面交換這些高開銷的操做!這也是NOSQL冒出來的緣由吧,應該是高性能 是基於RDBMS的衍生產品,雖然RDBMS也具備緩存結構,可是始終在app層面不是咱們想要的那麼操控的。 4.replication redis提供主從複製方案,跟mysql同樣增量複製並且複製的實現都很類似,這個複製跟AOF有點相似複製的是新增記錄命令,主庫新增記錄將新增腳本發送給從庫,從庫根據腳本生成記錄,這個過程很是快,就看網絡了,通常主從都是在同一個局域網,因此能夠說redis的主從近似及時同步,同事它還支持一主多從,動態添加從庫,從庫數量沒有限制。 主從庫搭建,我以爲仍是採用網狀模式,若是使用鏈式(master-slave-slave-slave-slave·····)若是第一個slave出現宕機重啓,首先從master 接收 數據恢復腳本,這個是阻塞的,若是主庫數據幾TB的狀況恢復過程得花上一段時間,在這個過程當中其餘的slave就沒法和主庫同步了。 5.更新快 這點好像從我接觸到redis到目前爲止 已經發了大版本就4個,小版本沒算過。redis做者是個很是積極的人,不管是郵件提問仍是論壇發帖,他都能及時耐心的爲你解答,維護度很高。有人維護的話,讓咱們用的也省心和放心。目前做者對redis 的主導開發方向是redis的集羣方向。
因此若是但願簡單就用ehcache,若是開發任務比較複雜,但願獲得比較多的支持什麼的就Redis
源碼來源: minglisoft.cn/technology