As of version 3.0, MongoDB now supports several different storage engines. One of the engines available is an experimental "In Memory" engine.

Storage Engines

MongoDB Architecture

MongoDB automatically loads frequently-accessed data into memory using the default memory-mapped files storage engine (MMAP V1). If you are working with a relatively small amount of data, this on-disk storage engine will likely have your data loaded in memory anyway as part of your active working set.

As an aside, here's a quick comparison of the two on-disk storage engines available in MongoDB 3.0.

More details are available here.

But developers have still been trying to find ways to force MongoDB into using purely in-memory storage for some time.

In-Memory Setup

On the Windows platform, here's how to play with the new, experimental in-memory storage engine being officially developed by the MongoDB folks.

1. Create a folder to hold log, lock, and pid files

MongoDB still wants a location on disk for certain artifacts, even with an exclusively in-memory DB. So create a folder for that like so:

C:\>mkdir c:\data\mem  

2. MongoDB In-Memory Windows Service

Now, from the MongoDB "bin" folder, tell MongoDB to install an instance of itself as a Windows Service that will listen on port 27018 (just an example, the default is 27017) and use the experimental in-memory storage engine:

C:\Program Files\MongoDB\Server\3.0\bin>mongod --install --serviceName MongoDBInMem --serviceDisplayName MongoDBInMem --port 27018 --dbpath c:\data\mem --logpath c:\data\mem\log --pidfilepath c:\data\mem\ --storageEngine inMemoryExperiment  

3. Start it Up

Now start the service like so:

C:\Program Files\MongoDB\Server\3.0\bin>net start MongoDBInMem