欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MongoDB的inMemory存储引擎

程序员文章站 2022-04-15 09:06:36
一、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实例关机或系统异常终止时,所有存储在内存中的数据都将会丢失。

 启动过程如下图所示:

MongoDB的inMemory存储引擎

 转自:https://www.cnblogs.com/collen7788/p/12679266.html