很多人設(shè)計程序框架時在使用數(shù)據(jù)庫時不清楚改選擇什么數(shù)據(jù)庫,下面就來談談MongoDB和Redis的區(qū)別:
簡介
MongoDB更類似Mysql,支持字段索引球拦、游標操作嘁锯,其優(yōu)勢在于查詢功能比較強大,擅長查詢JSON數(shù)據(jù)衬廷,能存儲海量數(shù)據(jù),但是不支持事務。
Mysql在大數(shù)據(jù)量時效率顯著下降宇整,MongoDB更多時候作為關(guān)系數(shù)據(jù)庫的一種替代。
內(nèi)存管理機制
Redis數(shù)據(jù)全部存在內(nèi)存芋膘,定期寫入磁盤鳞青,當內(nèi)存不夠時,可以選擇指定的LRU算法刪除數(shù)據(jù)为朋。
MongoDB數(shù)據(jù)存在內(nèi)存臂拓,由linux系統(tǒng)mmap實現(xiàn),當內(nèi)存不夠時习寸,只將熱點數(shù)據(jù)放入內(nèi)存胶惰,其他數(shù)據(jù)存在磁盤。
支持的數(shù)據(jù)結(jié)構(gòu)
Redis支持的數(shù)據(jù)結(jié)構(gòu)豐富融涣,包括hash童番、set、list等威鹿,前幾天在用爬蟲爬取優(yōu)優(yōu)好房時就用到了redis的list存儲任務剃斧。
MongoDB數(shù)據(jù)結(jié)構(gòu)比較單一,但是支持豐富的數(shù)據(jù)表達忽你,索引幼东,最類似關(guān)系型數(shù)據(jù)庫,支持的查詢語言非常豐富科雳。
性能
二者性能都比較高根蟹,應該說都不會是瓶頸。
可靠性
二者均支持持久化糟秘。
集群
???????? MongoDB集群技術(shù)比較成熟简逮,Redis從3.0開始支持集群。
不適用場景
?? 需要使用復雜sql的操作
?? 事務性系統(tǒng)