MongoDB與Redis的比較

來源:互聯網
上載者:User

標籤:class   html   情境   map   SM   data-   連續   操作性   儲存資料   

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

 

http://www.cnblogs.com/chinesern/p/5581422.html

 

1\redis和mongodb,mysql


Redis是完全在記憶體中儲存資料的資料庫,使用磁碟只是為了持久性目的,Redis資料全部存在記憶體,定期寫入磁碟,當記憶體不夠時,可以選擇指定的LRU演算法刪除資料,持久化是使用RDB方式或者aof方式。


mongodb是文檔型的非關係型資料庫,MongoDB更類似MySQL,支援欄位索引、遊標操作,其優勢在於查詢功能比較強大,擅長查詢JSON資料,能儲存海量資料,但是不支援事務。


mongodb的所有資料實際上是存放在硬碟的,所有要操作的資料通過mmap的方式映射到記憶體某個地區內。
然後,mongodb就在這塊地區裡面進行資料修改,避免了零碎的硬碟操作。
至於mmap上的內容flush到硬碟就是作業系統的事情了,所以,如果,mongodb在記憶體中修改了資料後,mmap資料flush到硬碟之前,系統宕機了,資料就會丟失。


mysql:
無論資料還是索引都存放在硬碟中。到要使用的時候才交換到記憶體中。能夠處理遠超過記憶體總量的資料。


資料量和效能:
當實體記憶體夠用的時候,redis>mongodb>mysql
當實體記憶體不夠用的時候,redis和mongodb都會使用虛擬記憶體。
實際上如果redis要開始虛擬記憶體,那很明顯要麼加記憶體條,要麼你換個資料庫了。
但是,mongodb不一樣,只要,業務上能保證,冷熱資料的讀寫比,使得熱資料在實體記憶體中,mmap的交換較少。
mongodb還是能夠保證效能。有人使用mongodb儲存了上T的資料。
mysql,mysql根本就不需要擔心資料量跟記憶體的關係。




Redis 事務支援比較弱,只能保證事務中的每個操作連續執行
mongodb不支援事務


MongoDB 內建了資料分析的功能(mapreduce),Redis不支援


Redis只能使用單線程,效能受限於CPU效能

MongoDB與Redis的比較

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.