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 run
You can then interact with the server using PuTTY on raw TCP port 6379.
This project is licensed under the MIT License.