MongoDB的inMemory存储引擎
程序员文章站
2022-07-02 09:52:40
一、MongoDB的存储引擎概述 存储引擎(Storage Engine)是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上。从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引擎(Storage Engine),MongoDB支持的存储引擎有 ......
一、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操作,减少数据查询的延迟。
二、in-memory storage engine
in-memory存储引擎将数据存储在内存中,除了少量的元数据和诊断(diagnostic)日志,in-memory存储引擎不会维护任何存储在硬盘上的数据(on-disk data),避免disk的io操作,减少数据查询的延迟。
使用下面的语句指定in-memory存储引擎:
mongod --storageengine inmemory --dbpath <path>
说明:
- 关于--dbpath参数:虽然in-memory 存储引擎不会向文件系统写入数据,但是它需要使用 --dbpath 维护少量的元数据和诊断(diagnostic )日志。
- 关于内存的使用:--inmemorysizegb 设置占用的内存数量,默认值是:50% of ram-1gb。指定in-memory 存储引擎使用的内存数据量,单位是gb。
- 关于持久化:由于in-memory 存储引擎不会持久化存储数据,只将数据存储在内存中,读写操作直接在内存中完成,不会将数据写入到disk文件中,因此,不需要单独的日志文件,不存在记录日志和等待数据持久化的问题,当mongodb实例关机或系统异常终止时,所有存储在内存中的数据都将会丢失。
启动过程如下图所示:
转自:https://www.cnblogs.com/collen7788/p/12679266.html