mongoldb,redis,memCached的緩存策略

 mongoDB:
MongoDB其實只是一種非關係型數據庫,其優勢在於可以存儲海量數據,
具備強大的查詢功能,因此不宜用於緩存數據的場景。
   
應該說Memcached和Redis都能很好的滿足解決我們的問題,它們性能都很高,總的來說,
可以把Redis理解爲是對Memcached的拓展,是更加重量級的實現,提供了更多更強大的功能。
具體來說:


1.性能上:
性能上都很出色,具體到細節,由於Redis只使用單核,而Memcached可以使用多核,
所以平均每一個核上Redis在存儲小數據時比Memcached性能更高。
而在100k以上的數據中,Memcached性能要高於Redis,
雖然Redis最近也在存儲大數據的性能上進行優化,但是比起 Memcached,還是稍有遜色。


2.內存空間和數據量大小:
MemCached可以修改最大內存,採用LRU算法。Redis增加了VM的特性,突破了物理內存的限制。


3.操作便利上:
MemCached數據結構單一,僅用來緩存數據,
而Redis支持更加豐富的數據類型,也可以在服務器端直接對數據進行豐富的操作,
這樣可以減少網絡IO次數和數據體積。


4.可靠性上:
    MemCached不支持數據持久化,斷電或重啓後數據消失,但其穩定性是有保證的。
    Redis支持數據持久化和數據恢復,允許單點故障,但是同時也會付出性能的代價。


5.應用場景:
    Memcached:動態系統中減輕數據庫負載,提升性能;做緩存,適合多讀少寫,大數據量的情況
    (如人人網大量查詢用戶信息、好友信息、文章信息等)。
    Redis:適用於對讀寫效率要求都很高,數據處理業務複雜和對安全性要求較高的系統

    (如新浪微博的計數和微博發佈部分系統,對數據安全性、讀寫要求都很高)。


需要慎重考慮的部分


1.Memcached單個key-value大小有限,一個value最大隻支持1MB,而Redis最大支持512MB
2.Memcached只是個內存緩存,對可靠性無要求;而Redis更傾向於內存數據庫,因此對對可靠性方面要求比較高
3.從本質上講,Memcached只是一個單一key-value內存Cache;而Redis則是一個數據結構內存數據庫,支持五種數據類型,
 因此Redis除單純緩存作用外,還可以處理一些簡單的邏輯運算,Redis不僅可以緩存,而且還可以作爲數據庫用
4.新版本(3.0)的Redis是指集羣分佈式,也就是說集羣本身均衡客戶端請求,各個節點可以交流,可拓展行、可維護性更強大。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章