| 專案 | Redis | MongoDB |
|---|---|---|
| 介紹 | Redis 是記憶體中的資料結構存盤,用作資料庫,快取和訊息代理, | MongoDB 是遵循檔案存盤結構的最流行的 NoSQL 資料庫之一, |
| 主資料庫模型 | Redis 遵循鍵值存盤模型, | MongoDB 遵循檔案存盤模型, |
| 許可 | Redis 是基于訂閱和開源的, | MongoDB 可以免費使用和開源, |
| 實作語言 | Redis 是用 C 語言撰寫和實作的, | MongoDB 是用 C ++語言撰寫和實作的, |
| 二級索引 | 沒有 | 是 |
| API 和其他訪問方法 | Redis 遵循專有協議, | MongoDB 遵循使用 JSON 的專有協議, |
| 服務器端腳本 | LUA | JavaScript 的 |
| 磁區方法 | Redis 使用 Sharding 進行磁區, | MongoDB 也使用 Sharding 進行磁區, |
| 復制方法 | Redis 遵循主從復制, | MongoDB 也遵循主從復制, |
| 可操作性 | 資料操作方面,redis更好一些,較少的網路IO次數 | 支持豐富的資料表達,索引,最類似關系型資料庫,支持的查詢語言非常豐富 |
| MapReduce | 沒有 | 是 |
| 一致性概念 | 最終的一致性和即時一致性 | 最終的一致性 |
| 交易概念 | 樂觀鎖定,命令塊和腳本的原子執行, | 沒有 |
| 性能 | 依賴記憶體,TPS較高 | 依賴記憶體,TPS較高 |
| 高并發 | 50個并發執行100000 個請求,讀的速度是110000 次/s,寫的速度是81000次/s | 善于處理高并發 |
| 持久化 | 支持持久化操作,可以進行aof及rdb資料持久化到磁盤,從而進行資料備份或資料恢復等操作,較好的防止資料丟失的手段, | 資料操作會先寫入記憶體,然后再會持久化到硬碟中去,mongodb在啟動時,專門初始化一個執行緒不斷回圈(除非應用crash掉),用于在一定時間周期內來從defer佇列中獲取要持久化的資料并寫入到磁盤的journal(日志)和mongofile(資料)處,當然因為它不是在用戶添加記錄時就寫到磁盤上,所以按mongodb開發者說,它不會造成性能上的損耗,因為當進行CUD操作時,記錄(Record型別)都被放入到defer佇列中以供延時批量(groupcommit)提交寫入,但相信其中時間周期引數是個要認真考量的引數,系統為90毫秒,如果該值更低的話,可能會造成頻繁磁盤操作,過高又會造成系統宕機時資料丟失過, |
| 記憶體與資料量 | redis在2.0版本后增加了自己的VM特性,突破物理記憶體的限制;可以對key value設定過期時間(類似memcache) | 適合大資料量存盤,依賴系統虛擬記憶體管理,采用鏡像檔案存盤;記憶體占有率比較高,官方建議獨立部署在64位系統(32位有最大2.5G檔案限制,64位沒有改限制) |
| 記憶體管理 | Redis 資料全部存在記憶體,定期寫入磁盤,當記憶體不夠時,可以選擇指定的 LRU 演算法洗掉資料, | MongoDB 資料會優先存于記憶體,當記憶體不夠時,只將熱點資料放入記憶體,其他資料存在磁盤, |
| 可用性 | 依賴客戶端來實作分布式讀寫;主從復制時,每次從節點重新連接主節點都要依賴整個快照,無增量復制;不支持自動sharding,需要依賴程式設定一致hash機制 | 支持master-slave,replicaset(內部采用paxos選舉演算法,自動故障恢復),auto sharding機制,對客戶端屏蔽了故障轉移和切分機制 |
| 用戶權限 | 簡單的基于密碼的訪問控制, | 用戶和角色的訪問權限, |
| 特色 | Redis 被評為世界上最快的資料庫,它降低了應用程式的復雜性,簡化了開發,加快了產品上市時間,并通過其有遠見的資料結構和模塊為開發人員提供了前所未有的靈 | MongoDB 被認為是下一代資料庫,它成功地幫助許多企業通過提供大資料來改變他們的行業,世界上最先進的組織,從最前沿的創業公司到最大的公司,使用 MongoDB 以極低的成本創建前所未有的應用程式, |
| 比較優勢 | Redis 是一種記憶體資料庫平臺,支持各種資料結構,如字串,散列,集合,串列,有序集,位圖,超級日志和地理空間索引,Redis 通過監督分片,重新分片,遷移的所有操作,以完全自動化的方式提供輕松擴展,它還包括持久性,即時自動故障檢測,備份和恢復以及跨機架,區域,資料中心,區域和云平臺的記憶體復制, | MongoDB 提供了當今最好的傳統資料庫以及當今應用程式所需的靈活性,擴展性和性能,MongoDB 是一個巨大的想法資料庫,MongoDB 保留了 Relational 資料庫最有價值的特性,即強一致性,運算式查詢語言和二級索引,它有助于開發人員比 NoSQL 資料庫更快地構建功能強大的應用程式 |
| 市場指標 | Redis Labs 由全球 60000 多家客戶組成,在 NoSQL,記憶體和運營資料庫方面的頂級分析報告中一直名列前茅,Redis 被評為否,1 個云資料庫,Docker 中的 1 號資料庫,1 號 NoSQL 資料存盤區,容器中最流行的 NoSQL 資料庫, | 下載量達到 2000 萬(每天下載量達到數千次),超過 2,000 名客戶,包括超過三分之一的財富 100 強,在 Forrester Wave 中被評為領導者:大資料 NoSQL,2016 年第 3 季度,在資料庫引擎排名中排名最高的非關系型資料庫 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/379498.html
標籤:其他
下一篇:@Autowired報錯
