【趙強老師】MongoDB的inMemory存儲引擎

1、MongoDB的存儲引擎概述

存儲引擎(Storage Engine)是MongoDB的核心組件,負責管理數據如何存儲在硬盤(Disk)和內存(Memory)上。從MongoDB 3.2 版本開始,MongoDB 支持多數據存儲引擎(Storage Engine),MongoDB支持的存儲引擎有:WiredTiger,MMAPv1和In-Memory。從MongoDB 3.2 版本開始,WiredTiger成爲MongDB默認的Storage Engine,用於將數據持久化存儲到硬盤文件中。目前,MongoDB支持如下三種存儲引擎:併發

  • WiredTiger_:WiredTiger提供文檔級別(Document-Level)的併發控制,檢查點(CheckPoint),數據壓縮和本地數據加密( Native Encryption)等功能。從MongoDB 3.2 版本開始,WiredTiger成爲MongDB默認的Storage Engine。
  • MMAPv1_:在MongoDB 3.2版本前,MMAPv1是默認的數據存儲引擎。
  • In-Memory Storage Engine_:In-Memory存儲引擎將數據存儲在內存中,除了少許的元數據和診斷(Diagnostic)日誌,In-Memory存儲引擎不會維護任何存儲在硬盤上的數據(On-Disk Data),避免Disk的IO操做,減小數據查詢的延遲。

2、In-Memory Storage Engine

In-Memory存儲引擎將數據存儲在內存中,除了少許的元數據和診斷(Diagnostic)日誌,In-Memory存儲引擎不會維護任何存儲在硬盤上的數據(On-Disk Data),避免Disk的IO操做,減小數據查詢的延遲。
使用下面的語句指定In-Memory存儲引擎:加密

mongod --storageEngine inMemory --dbpath <path>

說明:spa

  • 關於--dbpath參數:雖然In-Memory 存儲引擎不會向文件系統寫入數據,可是它須要使用 --dbpath 維護少許的元數據和診斷(Diagnostic )日誌。
  • 關於內存的使用:--inMemorySizeGB 設置佔用的內存數量,默認值是:50% of RAM-1GB。指定In-Memory 存儲引擎使用的內存數據量,單位是GB。
  • 關於持久化:因爲In-Memory 存儲引擎不會持久化存儲數據,只將數據存儲在內存中,讀寫操做直接在內存中完成,不會將數據寫入到Disk文件中,所以,不須要單獨的日誌文件,不存在記錄日誌和等待數據持久化的問題,當MongoDB實例關機或系統異常終止時,全部存儲在內存中的數據都將會丟失。

 啓動過程以下圖所示:日誌

相關文章
相關標籤/搜索