關於Redis和Memcache的比較

關於Redis和Memcache在應用中,均可以實現緩存的功能,可是,具體使用狀況須要根據具體業務場景,尤爲是對緩存數據有特性要求時,須要選擇對應的緩存機制。算法

共同點:數據庫

  都是基於內存的數據庫,可用做緩存機制緩存

區別:session

一、關於數據類型:Memcache只支持簡單的Key/Value數據結構;Redis支持的數據結構相對較多,如String、List、Set、zSet等。數據結構

二、是否支持持久化數據:Memcache數據存放在內存中,沒法持久化,在重啓後數據丟失;Redis可實現數據持久化到硬盤(RDB)或記錄操做日誌(AOF),在重啓後能夠實現數據恢復功能。多線程

三、關於對集羣的支持:Memcache經過Hash算法,在客戶端作集羣支持;Redis淘工做Reolication進行數據複製,支持master-slave機制,實現的事基於服務端的集羣支持。併發

四、關於性能:因爲寫入都是直接到內存,差異不會太大,可是在讀操做上,若是數據量相對較大,Memcache相對可能更強(只是我的猜想,未進行驗證測試)。微服務

五、線程問題:Memcache是多線程模型,主線程和work線程分開,前者負責監聽請求,並將具體的執行處理交給work線程;Redis單線程,串行執行,併發狀況下數據一致性有保障。性能

 

在項目具體應用中,前期嘗試過Memcache實現緩存,但後期仍是決定選用Redis,緣由是項目背景是微服務模式,Redis實現session共享以及基礎數據緩存相對更加有優點。測試

相關文章
相關標籤/搜索