標籤:
Memcached VS Redis
問題:memcached 與 redis 哪個好?
答:這個問題它依賴與工程類別和它的資料。
1.它們都是記憶體 key/value 類型的高速與高可用的查詢表。
2.它們都是叢集。
3.它們都是為大項目提供記憶體對象而不需要去訪問資料倉儲。
4.訪問它們,要比訪問資料倉儲有更快的速度。
從原理上講:
它們的部署環境與規模架構不一樣。
memcached:
memcached 是扁平數組 由一個hash值共用(我理解是一個hashid 決定一個扁平數組資料)
redis:
redis 是 cluster-slave 架構,
下面有張圖,可以反映出它們的原理與架構:
創造一個技術與架構設計是非常難的,尤其是很重要的緩衝結構。
下面幾個部分是一些它們的有點與缺點:
memcached 優點:
1.不複雜
2.配置簡單
3.宏觀命令很少,單個主機。
4.在叢集中,使用單主機,使用hash值去尋找key。(易於理解,結構簡單)
5.像搖滾音樂一樣工作(翻譯的無語,) , 原句: Runs like a rock -- memcached requires a nuclear strike to fall over
6.很多年的老產品,
7。很多開發語言都有memcached庫
memcached缺點:
1.只有記憶體緩衝功能,別的什麼功能都沒有
2.不能通過 AWS zons 共用快取。
3.不能滿足一個主機系統的所有緩衝需求
4.添加一個叢集成員需要從新配置和重啟用戶端。
redis優點:
1.可以用多種方式存放緩衝,比如list,array,sets,sorted sets
2.可以同時操作多個流水線命令列
3.阻塞讀取。
4.可以批量插入快取資料。
5.可以通過多個slave redis執行個體劃分緩衝。
6.可以把資料推到硬碟裡。
redis缺點:
1.配置複雜。
2.守護進程,當從變主後,它會自動失去備原功能,這在不穩定的redis分支上是持久性的。
3.主從架構意味著如果主進程出現故障,守護進程將不能工作,導致系統不能正常工作。
4.需要很多系統管理員去監控redis,去分配,去均衡。
memcached與redis