[資訊] Redis與Memcached

 Redis和Memcached的恩怨情仇

https://mp.weixin.qq.com/s/IYsuizzOqlGzte1hizTKMA


Redis與Memcached對比:

1、資料類型

Redis支援豐富的資料類型,比如string、hash、list、set、zset。

Memcached只支援簡單的key/value資料結構。


2、單執行緒/多執行緒/承載QPS

Redis是單執行緒請求,所有命令串列執行,併發情況下不需要考慮資料一致性問題;性能受限於CPU,單實例QPS在4-6w。

Memcached是多執行緒,可以利用多核優勢,單實例在正常情況下,可以達到寫入60-80w qps,讀80-100w qps。


3、持久化/資料移轉

Redis支援持久化操作,可以進行aof及rdb資料持久化到磁片。

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


4、對熱點、bigkey支持的友好度

Redis的big key與熱key類操作,如果qps較高則容易造成Redis阻塞,影響整體請求。

Memcached因為是多執行緒,與Redis相比,在big key與熱key類操作上支援較好。


5、高可用/HA

Redis支援通過Replication進行資料複製,通過master-slave機制,可以即時進行資料的同步複製,支援多級複製和增量複製,master-slave機制是Redis進行HA的重要手段。

Memcached無法進行資料同步,不能將實例中的資料移轉到其他MC實例中。


6、發佈訂閱機制

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

Memcached不支持發佈訂閱。


7、周邊支持

Redis相對Memcached,周邊工具支援較好,比如遷移、資料分析等方便,目前KCC支援全量和指定首碼等資料分析和刪除功能。

Memcched周邊支持較少,且原生不支持key分析等操作,目前KCC自研實現針對中小memached集群的key分析和指定首碼資料刪除功能。


注:KCC是公司Redis、Memcached、ElasticSearch、Pika管控平臺,目前管理70w+Cache實例,3000+ElasticSearch實例的智慧化運維。



#Redis, Memcached


留言