MongoDB與Redis的比較

 

 MongoDB和Redis都是NoSQL,採用結構型數據存儲。兩者在使用場景中,存在必定的區別,這也主要因爲兩者在內存映射的處理過程,持久化的處理方法不一樣。c++

 MongoDB建議集羣部署,更多的考慮到集羣方案,Redis更偏重於進程順序寫入,雖然支持集羣,也僅限於主-從模式。算法

 

比較指標 MongoDB(v2.4.9) Redis(v2.4.17) 比較說明
實現語言 c++ c/c++ -
協議 BSON,自定義二進制 類telnet -
性能 依賴內存,TPS較高 依賴內存,TPS很是高 Redis優於MongoDB
可操做性 豐富的數據表達,索引;最相似於關係型數據庫,支持豐富的查詢語句 數據豐富,較少的IO MongoDB優於Redis
內存及存儲 適合大數據量存儲,依賴系統虛擬內存,採用鏡像文件存儲;內存佔用率比較高,官方建議獨立部署在64位系統 Redis2.0後支持虛擬內存特性(VM) 突破物理內存限制;數據能夠設置時效性,相似於memcache 不一樣的應用場景,各有千秋
可用性 支持master-slave,replicatset(內部採用paxos選舉算法,自動故障恢復),auto sharding機制,對客戶端屏蔽了故障轉移和切片機制 依賴客戶端來實現分佈式讀寫;主從複製時,每次從節點從新鏈接主節點都要依賴整個快照,無增量複製;不支持auto sharding,須要依賴程序設定一致性hash機制 MongoDB優於Redis;單點問題上,MongoDB應用簡單,相對用戶透明,Redis比較複雜,須要客戶端主動解決.(MongoDB通常使用replicasets和sharding相結合,replicasets側重高可用性以及高可靠,sharding側重性能,水平擴展)
可靠性 從1.8版本後,採用binlog方式(相似Mysql) 支持持久化 依賴快照進行持久化;AOF加強可靠性;加強性的同時,影響訪問性能

 

一致性 不支持事務,靠客戶端保證 支持事務,比較脆,僅能保證事務中的操做按順序執行 Redis優於MongoDB
數據分析 內置數據分析功能(mapreduce) 不支持 MongoDB優於Redis
應用場景 海量數據的訪問效率提高 較小數據量的性能和運算 MongoDB優於Redis
相關文章
相關標籤/搜索