簡體   English   中英

我可以將MongoDB配置為內存嗎?

[英]Can I configure MongoDB to be In-Memory?

我感興趣的是使用一個允許高性能的數據庫,並期望集群需要大規模的水平擴展。

我們正在研究如何使用MongoDB,有人知道我是否可以使用InMemory(即出於性能原因在RAM中)?

TNX

您可以采用的性能提升方法是使用RAM磁盤

例如:

mongod --smallfiles --noprealloc --nojournal --dbpath <ramdisk mounted localtion>

也可以看看:

使用tmpfs

至少在linux上,由於MongoDB使用內存映射(mmap)文件,因此可以設置駐留在內存中的tmpfs系統。

這是一個關於為MongoDB設置tmpfs的簡潔教程

內存映射文件

內存映射文件在其常見問題解答中有更詳細的解釋。 它還說MongoDB自動配置為使用系統上的所有可用空閑內存作為其緩存( 鏈接 )。

結論

基本上,沒有用於純內存數據庫的模塊,但是通過使用內存中的fs,可以模擬它。

另外,我確實找到了MorboDB ,一個“內存數據庫,與MongoDB大部分兼容的克隆”。 可能對你沒用,但我認為這很有趣。

實際上,這樣做很容易。 只需將syncPeriodSecs設置為0並禁用日記功能即可。 為了防止創建大多數文件,只需啟動mongod

mongod --noprealloc --nojournal 

mongod.conf配置的等效選項。

但是,無論您做什么,都將創建命名空間文件。 如果您使用副本集,也將創建oplog文件。

為了確保您的mongodb不會占用所有可用的RAM並且插入不會在這些情況下拋出異常,您可能需要查看上限集合

截至今天,最新版本的MongoDB,即v3.4在其企業軟件版本的內存引擎中支持。 如果你尋求開源版本,Percona的MongoDB是可行的。

Mongo企業版: https//docs.mongodb.com/manual/core/inmemory/

Percona的MongoDB產品: https//www.percona.com/software/mongo-database/percona-memory-engine-for-mongodb

試試https://github.com/nodkz/mongodb-memory-server

這有助於測試

npm i mongodb-memory-server

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM