對比 Redis 與 Memcached
前幾天, Redis 的作者 Antirez 寫了一篇部落格, 駁斥了某個庫作者認為 Redis 比不上 Memcached 的觀點。
Antirez 的博文列舉了幾個他認為 Redis 比 Memcached 更優秀的地方, 但是並沒有對 Redis 和 Memcached 的每個功能進行詳細的對比, 而這篇文章要做的就是對 Antirez 的文章進行補充, 對 Redis 和 Memcached 進行詳細的對比, 透過檢視這些對比結果明白 Redis 和 Memcached 之間的區別。
Memcached是個純記憶體型的快取系統,支援資料型別單一,單個快取資料有限制,支援分散式,是個很理想的快取系統。
Redis是個簡單的NOSQL資料庫,支援幾種簡單的資料型別,支援主從複製,支援持久化,可以看作是個記憶體型資料庫。
由此可見,Memcached是正宗的快取系統,Redis是個可以做快取系統的記憶體型資料庫。
由於Redis的資料可以設定過期時間,支援多種資料型別,資料大小無限制,支援持久化等特點,貌似怎麼看都穩壓Memcached一籌,替代它好像是大勢所趨。
事實並非如此。
網站需要快取的資料可以分為兩種,一種是可丟失性的快取,這種快取不在乎被丟失,丟失了就再從資料庫或其它地方再讀回來,如Session,從資料庫查詢的資料,應用程式碼的快取等;另一種是不可丟失性的快取,就是其它地方沒儲存有,只有Redis快取有的資料。
先說下Memcached和Redis的優缺點:
Memcached是純記憶體型的快取,佔用記憶體小,執行穩定,讀寫資料很快。Redis的資料可以持久化到硬碟,佔用記憶體大,佔用硬碟IO高,在寫頻繁的時候而硬碟效能又不高的時候(目前只有SSD固態硬碟的效能才高,機械硬碟效能都不高),大大佔用CPU資源,讀寫效能會急劇降低,甚至會崩潰,不穩定。
為什麼說Memcached可以快取Session資料?有的人說,Memcached崩潰會造成Session丟失,我覺得這個可能性真的不大。Session是每個頁面都需要讀,每個新使用者都需要寫的,而且大部分的Session資料都是可丟失性的資料(一般網站陌生人Session比登入使用者Session要多的多),資料量也很小,非常適合儲存在Memcached。
Memcached其實是非常穩定的,目前我們網站每天百萬PV,沒出現過Memcached崩潰的問題。只要伺服器不崩潰,不是人為關閉,Memcached幾乎沒有崩潰的可能。如果伺服器經常崩潰的話,我覺得應該考慮換個好點的伺服器而不是把Memcached換成Redis。
當然了,Redis也有其適用的場合,使用Redis儲存那些不可丟失性資料。
功能對比
對比專案 | Memcached | Redis |
---|---|---|
支援的資料結構 |
|
|
單機附加功能 |
|
|
多機附加功能 |
|
|
記憶體分配方式 | slab | jemalloc |
網路模型 | 使用多個執行緒處理多個客戶端,使用鎖對執行緒進行同步 | 單執行緒,透過 I/O 多路複用來處理多個客戶端 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-1813731/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Memcached 與 Redis 實現的對比Redis
- memcached與redis實現的對比Redis
- 【Redis與Memcached比較】Redis
- Redis工作系列之一 與 Memcached對比理解Redis
- PostgreSQL、Redis與Memcached的效能比較 - CYBERTECSQLRedis
- Redis 和 Memcached 比較Redis
- 記憶體快取系統memcached與redis實現的對比記憶體快取Redis
- 全面對比 Redis 和 Memcached 的 6 點區別Redis
- memcached 和 redis 使用場景及優缺點對比Redis
- redis與rabbitmq對比RedisMQ
- 對比Memcached和Redis,誰才是適合你的快取?Redis快取
- 初試redis,比memcached快10倍速Redis
- Redis與Memcached的區別Redis
- 談談Memcached與Redis(四)Redis
- Memcached 及 Redis 架構分析和比較Redis架構
- Redis的配置及與memcached區別Redis
- Memcached與Redis有什麼區別Redis
- redis和memcachedRedis
- redis12-----redis 與關係型資料庫的對比Redis資料庫
- Redis和Memcached的區別Redis
- Memcached和Redis的區別?Redis
- redis和memcache的對比——配置Redis
- 【原創】REDIS與MYSQL實現標籤的對比薦RedisMySql
- MongoDB 或者 redis 可以替代 memcached 嗎?MongoDBRedis
- Redis相比Memcached有哪些優勢?Redis
- Memcache,Redis,MongoDB(資料快取系統)方案對比與分析RedisMongoDB快取
- 揭祕GaussDB(for Redis):全面對比CodisRedis
- redis和ssdb讀取效能對比Redis
- redis.cluster/memcached.cluster/wmware esxiRedis
- 好好耕耘redis和memcached的區別Redis
- Memcached vs Redis, 挑選哪一個?Redis
- Redis 和 Memcached 的區別詳解Redis
- 對比 Redis 中 RDB 和 AOF 持久化Redis持久化
- Redis 不同插入方法的效能對比Redis
- Python==與is對比Python
- git與svn對比Git
- RocketMQ與Kafka對比MQKafka
- Prototype與JQuery對比jQuery