python處理json數(shù)據(jù) redis、memcache和mongodb各自的優(yōu)點(diǎn)是什么,怎么選擇呢?
redis、memcache和mongodb各自的優(yōu)點(diǎn)是什么,怎么選擇呢?Mongodb不應(yīng)該與redis/Memcache相比,因?yàn)樗鼈兊膽?yīng)用場(chǎng)景完全不同。Mongodb是介于內(nèi)存數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)
redis、memcache和mongodb各自的優(yōu)點(diǎn)是什么,怎么選擇呢?
Mongodb不應(yīng)該與redis/Memcache相比,因?yàn)樗鼈兊膽?yīng)用場(chǎng)景完全不同。
Mongodb是介于內(nèi)存數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)之間的數(shù)據(jù)庫(kù)。它是一個(gè)高性能、無模式的文檔數(shù)據(jù)庫(kù)。
Mongodb數(shù)據(jù)存儲(chǔ)在磁盤上。只有在必要時(shí),才會(huì)通過MMAP映射到內(nèi)存,并在內(nèi)存中進(jìn)行修改。修改后,操作系統(tǒng)負(fù)責(zé)刷新磁盤。
優(yōu)點(diǎn):支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),能存儲(chǔ)海量數(shù)據(jù),能提供關(guān)系數(shù)據(jù)庫(kù)等強(qiáng)大的查詢功能。
Redis是一個(gè)開源的鍵值存儲(chǔ)系統(tǒng)。所有數(shù)據(jù)都存儲(chǔ)在內(nèi)存中。持久性處于RDB模式或AOF模式。只支持key、string、hash、list和set。優(yōu)點(diǎn):讀寫速度非常快。缺點(diǎn):受內(nèi)存限制,不能存儲(chǔ)太多的數(shù)據(jù),不能提供強(qiáng)大的查詢功能,只能使用單核。
Memcache是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),用于動(dòng)態(tài)web應(yīng)用程序以減少數(shù)據(jù)庫(kù)負(fù)載。Memcache只支持簡(jiǎn)單的鍵值結(jié)構(gòu),但使用多核。
在爬蟲中,經(jīng)常使用redis mongodb的方式。Mongodb用來存儲(chǔ)被爬網(wǎng)的海量數(shù)據(jù),redis用來消除重復(fù)并保存被爬網(wǎng)的URL。
mongodb如何定位?
Mongo數(shù)據(jù)庫(kù)本身介于redis內(nèi)存數(shù)據(jù)庫(kù)和MySQL數(shù)據(jù)庫(kù)之間。
以下重點(diǎn)介紹Mongo的優(yōu)勢(shì)。
Mongo V redis,
1:redis受內(nèi)存限制,不能存儲(chǔ)海量數(shù)據(jù);Mongo可以存儲(chǔ)海量數(shù)據(jù)。
2:Redis只支持簡(jiǎn)單的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),對(duì)應(yīng)不同的數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)景。
我什么時(shí)候需要Mongo?
Mongo實(shí)際上彌補(bǔ)了redis和mysql的不足。在爬蟲程序中,個(gè)人經(jīng)常使用Mongo來保存被爬網(wǎng)的數(shù)據(jù),而redis則保存要爬網(wǎng)的鏈接,并用于網(wǎng)頁重復(fù)數(shù)據(jù)消除。
postgresql的json能力是不是已經(jīng)超越了mongodb?
Postgres加載大數(shù)據(jù)的速度是mongodb的2.1倍,mongodb占用的磁盤空間比mongodb多33%。在插入數(shù)據(jù)時(shí),mongodb花費(fèi)的時(shí)間幾乎是Postgres的三倍,在查詢數(shù)據(jù)時(shí),mongodb花費(fèi)的時(shí)間是Postgres的2.5倍