Skip to content

GoodiesDB - Redis Database implementation written in Go

Notifications You must be signed in to change notification settings

andrelcunha/GoodiesDB

Repository files navigation

Go Docker Image CI

Goodies DB - A Redis implementation in Go

GoodiesDb started as a Redis implementation written in Go, serving as an educational project to learn and understand the inner workings of Redis, a popular in-memory data structure store. The current state of the project implements a subset of Redis's commands, including AUTH, SET, GET, DEL, EXISTS, SETNX, EXPIRE, INCR, DECR, TTL, SELECT, LPUSH, RPUSH, LPOP, RPOP, LRANGE, LTRIM, RENAME, TYPE, KEYS, INFO, PING, ECHO, QUIT, FLUSHDB and FLUSHALL.

Disclaimer: This is not a production-ready Redis clone and it is not intended for use in production environments (yet).

Table of Contents

Introduction

GoodiesDB aims to mimic the basic functionalities of Redis to provide a learning platform for developers interested in understanding distributed systems, data structures, and high-performance computing.

Features

  • In-memory key-value store
  • Data persistence using RDB and AOF
  • Support for lists, sets, and hash maps (planned)
  • Publish/Subscribe messaging (planned)
  • Basic transaction support
  • Lua scripting execution (planned)
  • Master-slave replication (planned)
  • Sharding (planned)

Installation

To get started with Redis Clone, follow these steps:

  1. Clone the repository:

    git clone https://github.com/andrelcunha/GoodiesDB.git
    cd GoodiesDB
  2. Install dependencies:

    go mod tidy
  3. Build the project:

    make build

Usage

Run the GoodiesDb server:

make run

You can then interact with the server using PuTTY on raw TCP port 6379.

License

This project is licensed under the MIT License.

Acknowledgements

  • Redis for the inspiration and original implementation.
  • Golang for the programming language.

About

GoodiesDB - Redis Database implementation written in Go

Resources

Stars

Watchers

Forks

Packages

No packages published