當前位置:成語大全網 - 新華字典 - java web開發緩存方案,ehcache和redis哪個更好

java web開發緩存方案,ehcache和redis哪個更好

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