mongodb完全替代mysql MongoDB單機會出現(xiàn)庫存超賣的情況嗎?
MongoDB單機會出現(xiàn)庫存超賣的情況嗎?你好,作者,謝謝你的邀請。首先,我想說的是,我只聽說過mongodb,但沒有與它有過任何真正的接觸。問題涉及兩個概念,一個是“mongodb”,另一個是“庫存
MongoDB單機會出現(xiàn)庫存超賣的情況嗎?
你好,作者,謝謝你的邀請。
首先,我想說的是,我只聽說過mongodb,但沒有與它有過任何真正的接觸。
問題涉及兩個概念,一個是“mongodb”,另一個是“庫存超賣”。
讓我們從mongodb開始?
Mongodb是一個基于分布式文件存儲的數(shù)據(jù)庫。用C語言編寫。它旨在為web應用程序提供可擴展的高性能數(shù)據(jù)存儲解決方案。
Mongodb是介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產(chǎn)品,功能最豐富,最像關系數(shù)據(jù)庫。
其次,什么是“庫存超賣”?
超賣出現(xiàn)在修改庫存業(yè)務的方法中,而不是數(shù)據(jù)庫的update語句中。
因此,mongodb單機應該存在超賣庫存。
那么如何防止超賣呢?
(1)Seckill數(shù)據(jù)庫設計;
(2)基于數(shù)據(jù)庫樂觀鎖,防止庫存超賣;
深入我不清楚,希望以上答案能對您有所幫助
redis、memcache和mongodb各自的優(yōu)點是什么,怎么選擇呢?
Mongodb不應與redis/Memcache相比,因為它們的應用場景完全不同。
Mongodb是介于內(nèi)存數(shù)據(jù)庫和關系數(shù)據(jù)庫之間的數(shù)據(jù)庫。它是一個高性能、無模式的文檔數(shù)據(jù)庫。
Mongodb數(shù)據(jù)存儲在磁盤上。只有在必要時,才會通過MMAP映射到內(nèi)存,并在內(nèi)存中進行修改。修改后,操作系統(tǒng)負責刷新磁盤。
優(yōu)點:支持復雜的數(shù)據(jù)結構,能存儲海量數(shù)據(jù),能提供關系數(shù)據(jù)庫等強大的查詢功能。
Redis是一個開源的鍵值存儲系統(tǒng)。所有數(shù)據(jù)都存儲在內(nèi)存中。持久性處于RDB模式或AOF模式。只支持key、string、hash、list和set。優(yōu)點:讀寫速度非常快。缺點:受內(nèi)存限制,不能存儲太多的數(shù)據(jù),不能提供強大的查詢功能,只能使用單核。
Memcache是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)web應用程序以減少數(shù)據(jù)庫負載。Memcache只支持簡單的鍵值結構,但使用多核。
在爬蟲中,經(jīng)常使用redis mongodb的方式。Mongodb用來存儲被爬網(wǎng)的海量數(shù)據(jù),redis用來消除重復并保存被爬網(wǎng)的URL。