PHP面試之Redis and Memcached

複製:  從數據結構上來說,redis在kv模式上,支持5中數據結構,String、list、hash、set、zset,並支持很多相關的計算,比如排序、阻塞等,而memcache只支持kv簡單存儲。所以當你的緩存中不只需要存儲kv模型的數據時,redis豐富的數據操作空間,絕對是非常好的選擇,另外說一句,利用redis可以高效的實現類似於單集羣下的阻塞隊列、鎖及線程通信等功能

redis支持持久化,但是memcached不支持,redis更適合做數據存儲,memcached更適合做緩存。

redis確實比memcache功能更全,集成更方便,但是memcache相比redis在內存、線程、IO角度來說都有一定的優勢,可以利用cpu提高機器性能,在不考慮擴展性和持久性的訪問頻繁的情況下,只存儲kv格式的數據,建議使用memcache,memcache更像是個緩存,而redis更偏向與一個存儲數據的系統。但是,覺得不要拿redis當數據庫用!!!

兩者大致區別優缺點對比:

1. redis比memcached支持的數據結構類型多;

2. memcached掛掉以後,數據就沒了,並且數據不可恢復,但是redis可以定期保存到磁盤(持久化),數據丟失之後可以通過aof恢復;

兩者不同在於:

1、存儲方式: 
memecache 把數據全部存在內存之中,斷電後會掛掉,數據不能超過內存大小 
redis有部份存在硬盤上,這樣能保證數據的持久性,支持數據的持久化(筆者注:有快照和AOF日誌兩種持久化方式,在實際應用的時候,要特別注意配置文件快照參數,要不就很有可能服務器頻繁滿載做dump)。 
2、數據支持類型: 
redis在數據支持上要比memecache多的多。 
3、使用底層模型不同: 
新版本的redis直接自己構建了VM 機制 ,因爲一般的系統調用系統函數的話,會浪費一定的時間去移動和請求。 
4、運行環境不同: 
redis目前官方只支持LINUX 上去行,從而省去了對於其它系統的支持,這樣的話可以更好的把精力用於本系統 環境上的優化,雖然後來微軟有一個小組爲其寫了補丁。但是沒有放到主幹上

參考鏈接:https://www.cnblogs.com/dipak/p/13303310.html

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