MongoDB和Redis比較。
MongoDB和Redis都是NoSQL,採用結構型資料儲存。二者在使用場景中,存在一定的區別,這也主要由於二者在記憶體對映的處理過程,持久化的處理方法不同。
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 |
相關文章
- Redis vs. MongoDB比較RedisMongoDB
- MongoDB和MySQL比較MongoDBMySql
- Redis 和 Memcached 比較Redis
- Elasticsearch、MongoDB和Hadoop比較。ElasticsearchMongoDBHadoop
- etcd和redis比較Redis
- mongodb和hbase的簡單比較MongoDB
- Memcached 及 Redis 架構分析和比較Redis架構
- redis學習(九) redis事務和redis指令碼的比較Redis指令碼
- 【Redis與Memcached比較】Redis
- 在MongoDB下使用JS和Python的效能比較MongoDBJSPython
- MongoDB、Cassandra 和 HBase 三種 NoSQL 資料庫比較MongoDBSQL資料庫
- 大偏移量下Redis與MongoDB的分頁/排名效能比較RHRedisMongoDB
- 資料庫比較 PostgreSQL vs MongoDB資料庫SQLMongoDB
- js 深比較和淺比較JS
- Nosql/Redis/ttserver/Flare/memcache比較SQLRedisTTSServer
- MongoDB資料比較工具dbHash介紹MongoDB
- MongoDB和Redis的使用MongoDBRedis
- mongodb資料遷移2種方式比較MongoDB
- Oracle date 型別比較和String比較Oracle型別
- Redis基礎篇(五)AOF與RDB比較和選擇策略Redis
- PostgreSQL、Redis與Memcached的效能比較 - CYBERTECSQLRedis
- TCP和UDP比較TCPUDP
- Java和JavaSciprt比較Java
- ETL和EAI比較AI
- Go和Python比較的話,哪個比較好?GoPython
- 比較RAC和RxSwiftSwift
- Swift和Objective C比較SwiftObject
- XMLHttpRequest和fetch比較XMLHTTP
- [Oracle] minus 和 not exists比較Oracle
- ORACLE 中IN和EXISTS比較Oracle
- 比較字串和數字串字串
- ejb 和 javabean的比較JavaBean
- 索引的分析和比較索引
- ImageMagic 和 GraphicsMagick 的比較
- [Redis 客戶端整合] Java 中常用Redis客戶端比較Redis客戶端Java
- 以MongoDB為例與關係型資料庫比較MongoDB資料庫
- Go 與 C++ 的對比和比較GoC++
- TreeMap和HashMap的元素比較HashMap