1. 程式人生 > >php面試題6-memcache和redis的區別

php面試題6-memcache和redis的區別

Memcache和Redis區別:

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

區別:
Memcache
Memcache可以利用多核優勢,單例項吞吐量極高,可以達到幾十萬QPS, 適用於最大程度扛量
只支援簡單的key/value資料結構,不像Redis可以支援豐富的資料型別。
無法進行持久化,資料不能備份,只能用於快取使用,且重啟後資料全部丟失

Redis
支援多種資料結構,如string,list,dict,set,zset,hyperloglog
單執行緒請求,所有命令序列執行,併發情況下不需要考慮資料一致性問題。
支援持久化操作,可以進行aof及rdb資料持久化到磁碟,從而進行資料備份或資料恢復等操作,較好的防止資料丟失的手段。
aof的壓縮規則 比如一個key新增再刪除 就會過濾
支援通過Replication進行資料複製,通過master-slave機制,可以實時進行資料的同步複製,支援多級複製和增量複製.
支援pub/sub訊息訂閱機制,可以用來進行訊息訂閱與通知。
支援簡單的事務需求,但業界使用場景很少,並不成熟