Skip to content
/ kvd Public

A dumb Redis-compatible key-value database using Docker containers as storage

License

Notifications You must be signed in to change notification settings

Bogorg/kvd

Repository files navigation

KVD - Key Value Docker

                    ##        .
              ## ## ##       ==
           ## ## ## ##      ===
       /""""""""""""""""\___/ ===
  ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
       \______ o          __/
         \    \        __/
          \____\______/

         _  ____   _____
        | |/ /\ \ / /   \
        | ' <  \ V /| |) |
        |_|\_\  \_/ |___/

A dumb Redis-compatible key-value database using Docker containers as storage

License: MIT Go Version Build Status

🤔 What is this?

KVD is a inefficient but fun key-value database that uses Docker containers as its storage engine. It uses the RESP protocol, making it compatible with Redis clients and commands.

Why "dumb"? Because using Docker containers as a key-value store is one of the worst possible ways to implement a database. It's slow, resource-intensive, but fun.

How it works

  • SET: Creates a Docker container with the key as the container name and value stored as a label
  • GET: Retrieves the value from the container label matching the key
  • DEL: Removes the Docker container associated with the key

📋 Requirements

  • Docker must be installed and running on your system

🚀 Installation

Download the latest binary for your platform from the releases page.

Supported platforms:

  • Linux: amd64, arm64 (.deb, .rpm, .apk packages available)
  • macOS: amd64 (Intel), arm64 (Apple Silicon)
  • Windows: amd64, arm64

Build from Source

git clone https://github.com/Bogorg/kvd.git
cd kvd
go build -o kvd

💻 Usage

Start the Server

kvd serve --port 6379

Or use the default port (6379):

kvd serve

Connect with Redis Client

Once the server is running, you can connect with any Redis client:

redis-cli -p 6379

Supported Commands

127.0.0.1:6379> SET mykey "Hello, World!"
OK
127.0.0.1:6379> GET mykey
"Hello, World!"
127.0.0.1:6379> DEL mykey
(integer) 1
127.0.0.1:6379> GET mykey
(nil)

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A dumb Redis-compatible key-value database using Docker containers as storage

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages