Skip to content

bhavya-dang/memoradb

Repository files navigation

MemoraDB

TypeScript Redis NPM Downloads

MemoraDB is a lightweight, type safe, Redis-like, in-memory key-value store written in TypeScript. It currently supports operations like SET, GET, EXPIRE, and more.

It was my attempt to learn more about Redis and TypeScript.

Table of Contents

Features

  • In-memory key-value storage
  • Supports TTL (Time-To-Live) for keys
  • Basic Redis-like commands (SET, GET, DEL, INCR, DECR, FLUSHALL, etc.)
  • Lightweight and easy to integrate
  • TCP server for remote communication
  • TypeScript support with an easy-to-use client library (WIP)

Installation

You can install MemoraDB via npm:

npm install memoradb

Usage

Running MemoraDB Server

You can start the Memora server using:

npx memoradb 7000

This will start the server on port 7000.

Connecting via TCP (Netcat / Telnet)

If MemoraDB is running as a TCP server, you can interact with it using netcat:

nc localhost 7000

Then, you can enter commands like:

SET name MemoraDB
GET name
INCR counter

MemoraDB Commands

MemoraDB supports the following commands:

Command Description
SET key value [EX seconds] Stores a key with an optional expiration time
GET key Retrieves the value of a key
DEL key Deletes a key
EXPIRE key seconds Sets a time-to-live (TTL) for a key
TTL key Gets the remaining TTL for a key
PERSIST key Removes expiration from a key
FLUSHALL Deletes all keys
INCR key Increments a numerical key
DECR key Decrements a numerical key

Contributing

Contributions are welcome! Feel free to open issues or submit PRs.

License

This project is licensed under the MIT License.