小編給大家分享一下MongoDB和redis有哪些區(qū)別,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)建站是一家專業(yè)提供洋縣企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都做網(wǎng)站、HTML5、小程序制作等業(yè)務(wù)。10年已為洋縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
Redis和MongoDB區(qū)別
MongoDB 更類似 MySQL,支持字段索引、游標(biāo)操作,其優(yōu)勢在于查詢功能比較強(qiáng)大,擅長查詢 JSON 數(shù)據(jù),能存儲海量數(shù)據(jù),但是不支持事務(wù)。
Redis 是一個(gè)開源(BSD許可)的,內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲系統(tǒng),支持多種類型的數(shù)據(jù)結(jié)構(gòu),可用作數(shù)據(jù)庫,高速緩存和消息隊(duì)列代理。
1、內(nèi)存管理機(jī)制
Redis 數(shù)據(jù)全部存在內(nèi)存,定期寫入磁盤,當(dāng)內(nèi)存不夠時(shí),可以選擇指定的 LRU 算法刪除數(shù)據(jù)。
MongoDB 數(shù)據(jù)存在內(nèi)存,由 linux系統(tǒng) mmap 實(shí)現(xiàn),當(dāng)內(nèi)存不夠時(shí),只將熱點(diǎn)數(shù)據(jù)放入內(nèi)存,其他數(shù)據(jù)存在磁盤。
2、支持的數(shù)據(jù)結(jié)構(gòu)
Redis 支持的數(shù)據(jù)結(jié)構(gòu)豐富,包括hash、set、list等。
MongoDB 數(shù)據(jù)結(jié)構(gòu)比較單一,但是支持豐富的數(shù)據(jù)表達(dá),索引,最類似關(guān)系型數(shù)據(jù)庫,支持的查詢語言非常豐富。
3、數(shù)據(jù)量和性能:
當(dāng)物理內(nèi)存夠用的時(shí)候,redis>mongodb>mysql
當(dāng)物理內(nèi)存不夠用的時(shí)候,redis和mongodb都會使用虛擬內(nèi)存。
實(shí)際上如果redis要開始虛擬內(nèi)存,那很明顯要么加內(nèi)存條,要么你換個(gè)數(shù)據(jù)庫了。
但是,mongodb不一樣,只要,業(yè)務(wù)上能保證,冷熱數(shù)據(jù)的讀寫比,使得熱數(shù)據(jù)在物理內(nèi)存中,mmap的交換較少。
mongodb還是能夠保證性能。
4、性能
mongodb依賴內(nèi)存,TPS較高;Redis依賴內(nèi)存,TPS非常高。性能上Redis優(yōu)于MongoDB。
5、可靠性
mongodb從1.8版本后,采用binlog方式(MySQL同樣采用該方式)支持持久化,增加可靠性;
Redis依賴快照進(jìn)行持久化;AOF增強(qiáng)可靠性;增強(qiáng)可靠性的同時(shí),影響訪問性能。
可靠性上MongoDB優(yōu)于Redis。
6、數(shù)據(jù)分析
mongodb內(nèi)置數(shù)據(jù)分析功能(mapreduce);而Redis不支持。
7、事務(wù)支持情況
Redis 事務(wù)支持比較弱,只能保證事務(wù)中的每個(gè)操作連續(xù)執(zhí)行;mongodb不支持事務(wù)。
8、集群
MongoDB 集群技術(shù)比較成熟,Redis從3.0開始支持集群。
看完了這篇文章,相信你對mongodb和redis有哪些區(qū)別有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!