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).
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.
- 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)
To get started with Redis Clone, follow these steps:
-
Clone the repository:
git clone https://github.com/andrelcunha/goodiesdb.git cd GoodiesDB -
Install dependencies:
go mod tidy
-
Build the project:
make build
Run the GoodiesDb server:
make runYou can then interact with the server using PuTTY on raw TCP port 6379.
This project is licensed under the MIT License.