數(shù)據(jù)持久化的四種方式 mongodb如何定位?
mongodb如何定位?Mongo數(shù)據(jù)庫本身介于redis內(nèi)存數(shù)據(jù)庫和MySQL數(shù)據(jù)庫之間。以下重點(diǎn)介紹Mongo的優(yōu)勢。Mongo V redis,1:redis受內(nèi)存限制,不能存儲海量數(shù)據(jù);Mon
mongodb如何定位?
Mongo數(shù)據(jù)庫本身介于redis內(nèi)存數(shù)據(jù)庫和MySQL數(shù)據(jù)庫之間。
以下重點(diǎn)介紹Mongo的優(yōu)勢。
Mongo V redis,
1:redis受內(nèi)存限制,不能存儲海量數(shù)據(jù);Mongo可以存儲海量數(shù)據(jù)。
2:Redis只支持簡單的string、hash、list、set和Zset數(shù)據(jù)結(jié)構(gòu),Mongo支持文檔類型的數(shù)據(jù)結(jié)構(gòu),可以說是JSON字符串。這個(gè)數(shù)據(jù)結(jié)構(gòu)是多么的靈活和方便,我不需要過多的介紹。
3:redis能提供復(fù)雜的查詢嗎?蒙哥笑了笑,什么也沒說。
4:redis是否有內(nèi)置的數(shù)據(jù)分析功能(MapReduce)?
讓我們看看Mongo V MySQL
2:Mongo的插入速度比MySQL快。
3:Mongo可以輕松分發(fā)和擴(kuò)展,而無需停機(jī)或更改應(yīng)用程序。
事實(shí)上,它們各有優(yōu)缺點(diǎn),對應(yīng)不同的數(shù)據(jù)庫應(yīng)用場景。
我什么時(shí)候需要Mongo?
Mongo實(shí)際上彌補(bǔ)了redis和mysql的不足。在爬蟲程序中,個(gè)人經(jīng)常使用Mongo來保存被爬網(wǎng)的數(shù)據(jù),而redis則保存要爬網(wǎng)的鏈接,并用于網(wǎng)頁重復(fù)數(shù)據(jù)消除。
redis持久化方式區(qū)別?
Redis運(yùn)行時(shí)數(shù)據(jù)保存在內(nèi)存中,那么當(dāng)服務(wù)器重新啟動(dòng)并且數(shù)據(jù)丟失時(shí)該怎么辦?當(dāng)然,它還提供持久性設(shè)置。
Redis支持RDB和AOF兩種持久化模式。
RDB模式是定期將內(nèi)存中的數(shù)據(jù)轉(zhuǎn)儲到磁盤。實(shí)現(xiàn)是一個(gè)定時(shí)fork子進(jìn)程,它將內(nèi)存數(shù)據(jù)寫入文件,然后替換最后生成的文件。如果在此過程中服務(wù)器異常停機(jī),數(shù)據(jù)將丟失。在RDB模式下,所有redis數(shù)據(jù)都可以保存在一個(gè)文件中,這對于數(shù)據(jù)恢復(fù)非常方便。對某個(gè)時(shí)間節(jié)點(diǎn)進(jìn)行數(shù)據(jù)備份也非常方便。
Aof是記錄事務(wù)操作日志并將其添加到文件中。Aof支持三種策略來記錄操作日志。
1. 每次修改都是同步的,也就是說,每個(gè)事務(wù)操作都會立即記錄下來。
2. 每秒同步,每秒異步記錄。
3. 不同步,即沒有記錄。
每秒同步與RDB具有相同的數(shù)據(jù)丟失風(fēng)險(xiǎn)。RDB比AOF更能有效地恢復(fù)大量數(shù)據(jù)。