memcache、redis、mongodb的優缺點對比
阿新 • • 發佈:2019-04-16
1.memcache: 1M
1>優點:利用多核心優勢,單例項吞吐量可達到幾十萬qps(日常4-6萬) 適用於最大程度抗量 可直接配置session handle
2>缺點:只支援簡單的key/value結構,不支援其它的型別,無法持久化,資料不能備份,重啟後資料丟失,無法進行資料同步和遷移。
2.redis
1>優點:支援多種資料結構,如string list hash表 set zset 等 支援持久化 可以進行資料複製和主從同步,單執行緒序列 併發不需要考慮一致性問題
2>缺點:只能單執行緒,效能受限於CPU,單例最高5-6萬qps(日常1-2萬) string型別上消耗較多的記憶體 可以使用hash表壓縮儲存降低記憶體耗用
3.mongodb
1>優點:文件型資料庫,可以存放xml/json/bson型別資料 支援大容量儲存 內建sharding,分片簡單 支援豐富的表達、索引,最類似關係型資料庫
2>缺點:佔用空間過大,沒有成熟的維護工具,不能進行關聯查詢,不適用於關係多的資料
4.應用場景
1>redis:資料量較小的效能操作和運算上
2>memcache: 用於在動態系統中減少資料庫負載,提升效能,主要做快取,提高效能
3>mongodb: 主要解決海量資料的訪問效率問題
5.關於事務(一致性)
1>memecache在併發場景下,用cas保證一致性
2>redis事務支援比較弱,只能保證事務中的每個操作連續執行,也是redis的缺點
3>mongoDB不支援事務
4>memcache的cas指的是在使用gets獲取內容時會返回一個標識,在進行cas時,會進行檢測標識是否相符,相符則進行修改,並更改標識值,否則返