redis與mongodb有哪些區別

redis與mongodb有哪些區別

mongodb更類似mysql,支持字段索引、游標操作,其優勢在于查詢功能比較強大,擅長查詢json數據,能存儲海量數據,但是不支持事務。

Mysql在大數據量時效率顯著下降,MongoDB更多時候作為關系數據庫的一種替代。

mongodb更吃內存,因為當mongo發現內存不夠的時候,是以2的指數級別來申請內存的。所以一般都建議把mongodb單獨放。?

其實可以說redis更像緩存機制,Cookie,也可以設定數據的過期時間,當然也可以永久存儲(但是好像稍遜色?)。mongodb是文檔式的存儲。

內存管理機制:

Redis數據全部存在內存,定期寫入磁盤,當內存不夠時,可以選擇指定的LRU算法刪除數據。

MongoDB和mysql一樣,只是把索引文件放到內存中。由linux系統mmap實現,當內存不夠時,只將熱點數據放入內存,其他數據存在磁盤。?

支持的數據結構

Redis支持的數據結構豐富,包括hash、set、list等。

MongoDB數據結構比較單一,但是支持豐富的數據表達,索引,最類似關系型數據庫,支持的查詢語言非常豐富。

性能:

redis更適用于較小數據量的性能及運算

mongodb則在海量數據的訪問下性能更優

可靠性:

二者均支持持久化。

集群:

MongoDB集群技術比較成熟,Redis從3.0開始支持集群。

不適用場景:

? 需要使用復雜sql的操作

? 事務性系統

適用場景:

Redis 最佳應用場景:適用于數據變化快且數據庫大小可遇見(適合內存容量)的應用程序。

MongoDB:最佳應用場景:適用于需要動態查詢支持;需要使用索引而不是 map/reduce功能;需要對大數據庫有性能要求;需要使用 couchdb但因為數據改變太頻繁而占滿內存的應用程序。

更多Redis相關技術文章,請訪問Redis教程欄目進行學習!

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享