MongoDB的In-Memory存储引擎将会把数据存储在内存中。除了少量的元数据和诊断日志以外,In-Memory存储引擎不会维护任何存储在硬盘上的数据,从而避免硬盘的读写操作,以减少数据查询的延迟,从而提高性能。
提示:虽然In-Memory存储引擎不会向文件系统写入数据,但是它任然需要使用–dbpath参数指定一个目录用于存储少量的元数据和诊断日志。通过指定参数–inMemorySizeGB可以设置MongoDB占用的内存数量,默认值是:50% of RAM - 1GB。
视频讲解如下:
MongoDB的In-Memory存储引擎 |
---|
【赵渝强老师】MongoDB的In-Memory存储引擎 |
下面通过一个示例来演示如何使用MongoDB的In-Memory存储引擎。
(1)创建目录用于保存In-Memory存储引擎的元数据和诊断日志。
mkdir -p /data/memory
(2)编辑配置文件/data/memory/memory.conf,输入下面的内容。
dbpath=/data/memory/
port=27019
fork=true
logpath=/data/memory/memory.log
storageEngine=inMemory
(3)启动MongoDB服务器端。
mongod --config /data/memory/memory.conf
(4)使用mongoshell连接MongoDB。
mongo --port 27019
(5)在MongoDB中创建一个数据库和一张新的集合,并插入一条数据。
> use demomemory
> db.test2.insert({name:'Tom',age:18});
(6)执行一个简单的查询。
> db.test2.find()
输出的信息如下:
{ "_id" : ObjectId("624a79c6bbaaee76910e3e09"), "name" : "Tom", "age" : 18 }
(7)切换到admin数据库,并关闭MongoDB数据库服务器端。
> use admin
> db.shutdownServer()
> exit
(8)重新启动MongoDB服务器端,并使用mongoshell连接MongoDB
mongod --config /data/memory/memory.conf
mongo --port 27019
(9)查看当前MongoDB实例中的数据库。
> show dbs;
输出的信息如下:
admin 0.000GB
local 0.000GB
提示:因为使用In-Memory存储引擎,MongoDB不会执行数据的持久化操作。一旦重启了MongoDB数据库服务器,数据将会从内存中丢失。