1. 程式人生 > >memcache與redis區別

memcache與redis區別

Memcache和Redis區別:

  1. Redis中,並不是所有的資料都一直儲存在記憶體中的,這是和Memcache相比一個最大的區別。
  2. Redis在很多方面具備資料庫的特徵,或者說就是一個數據庫系統,而Memcache只是簡單的K/V快取。
  3. 他們的擴充套件都需要做叢集;實現方式:master-slave、Hash。
  4. 在100k以上的資料中,Memcache效能要高於Redis。
  5. 如果要說記憶體使用效率,使用簡單的key-value儲存的話,Memcached的記憶體利用率更高,而如果Redis採用hash結構來做key-value儲存,由於其組合式的壓縮,其記憶體利用率會高於Memcache。當然,這和你的應用場景和資料特性有關。
  6. 如果你對資料持久化和資料同步有所要求,那麼推薦你選擇Redis,因為這兩個特性Memcache都不具備。即使你只是希望在升級或者重啟系統後快取資料不會丟失,選擇Redis也是明智的。
  7. Redis和Memcache在寫入效能上面差別不大,讀取效能上面尤其是批量讀取效能上面Memcache更強

共同點:Memcache,Redis 都是記憶體資料庫

區別:

 Memcache

   Memcache可以利用多核優勢,單例項吞吐量極高,可以達到幾十萬QPS,適用於最大程度扛量

    只支援簡單的key/value資料結構,不像Redis可以支援豐富的資料型別。

    無法進行持久化,資料不能備份,只能用於快取使用,且重啟後資料全部丟失

 Redis

    支援多種資料結構,如string,list,dict,set,zset,hyperloglog

    單執行緒請求,所有命令序列執行,併發情況下不需要考慮資料一致性問題。

    支援持久化操作,可以進行aof及rdb資料持久化到磁碟,從而進行資料備份或資料恢復等操作,較好的防止資料丟失的手段。

    支援通過Replication進行資料複製,通過master-slave機制,可以實時進行資料的同步複製,支援多級複製和增量複製.

    支援pub/sub訊息訂閱機制,可以用來進行訊息訂閱與通知。

    支援簡單的事務需求,但業界使用場景很少,並不成熟