MemoryDB
An in-memory database that's designed for high-performance data storage and retrieval. Support for sorted data structures and batch operations that enable sorted and efficient data handling operations. You can perform CRUD operations, iterate through sorted data, and much more.
Features
- In-memory sorted data storage
- Event Emitters
- Built-in batch operations
- Supports key and value encoding
- Event-driven architecture
- Streaming support
Installation
Install the package with:
npm install @plaindb/memorydb
Usage
Import the Package
import MemoryDB from '@plaindb/memorydb'
or
const MemoryDB = require('@plaindb/memorydb')
Create a New MemoryDB Instance
const db = new MemoryDB()
Insert a Key-Value Pair
await db.put('key', 'value')
Retrieve a Value by Key
const value = await db.get('key')
Delete a Key
await db.del('key')
Batch Operations
const batch = db.batch()
batch.put('key1', 'value1')
batch.put('key2', 'value2')
batch.del('key3')
await batch.build()
Sub Databases
You can also create sub-databases.
const subDb = db.sub('subDbPath')
Example
const db = new MemoryDB()
// put, get and del operations will wait for the instance to be ready but you can call it explicitly
await db.isReady()
// put key-value pair
await db.put('key1', 'value1')
// get value by key
console.log(await db.get('key1')) // Output: value1
// delete key
await db.del('key1')
// batch operations
await db.batch([
{ type: 'put', key: 'key1', value: 'value1' },
{ type: 'put', key: 'key2', value: 'value2' }
])
Documentation
Class MemoryDB
async put(key, value)
Inserts a new key-value pair or updates the value if the key already exists.
async get(key)
Retrieves the value for the given key. Returns null
if the key does not exist.
async del(key)
Deletes a key and its corresponding value from the database.
sub(path, opts)
Returns a subtree.
iterator(opts)
Iterates through all the key-value pairs.
listAll(opts)
Prints all key-value pairs.
batch(ops)
Batch execute multiple operations.
isReady()
Returns a promise that resolves when the database is ready.
collect(type, opts)
Collects keys or values based on the given options.
Tests
In order to run the test suite, simply clone the repository and install its dependencies:
git clone https://gitlab.com/frenware/framework/plaindb/memorydb.git
cd basd
npm install
To run the tests:
npm test
Contributing
Thank you! Please see our contributing guidelines for details.
Donations
If you find this project useful and want to help support further development, please send us some coin. We greatly appreciate any and all contributions. Thank you!
Bitcoin (BTC):
1JUb1yNFH6wjGekRUW6Dfgyg4J4h6wKKdF
Monero (XMR):
46uV2fMZT3EWkBrGUgszJCcbqFqEvqrB4bZBJwsbx7yA8e2WBakXzJSUK8aqT4GoqERzbg4oKT2SiPeCgjzVH6VpSQ5y7KQ
License
@plaindb/memorydb is MIT licensed.