Redis Clone in Go
A lightweight, concurrent key-value store built from scratch in Go. This project implements the Redis protocol (RESP) and features custom sharding and a modular command system.
Key Features
- High Concurrency: Uses data sharding to minimize lock contention.
- RESP Protocol: Fully compatible with standard tools like
redis-cli. - Pub/Sub System: Real-time message broadcasting for connected clients.
- MULTI/EXEC: Allows queue commands and then running them atomically.
- Modular Architecture: Easy-to-extend command registry for adding new features.
Quick Start
1. Run the Server
go run main.go
2. Connect with redis-cli
Open a new terminal window and run:
redis-cli
3. Try it out
> SET mykey "Hello Go"
OK
> GET mykey
"Hello Go"
> SUBSCRIBE news
Project Structure
pkg/core: Core data structures and protocol serialization.pkg/commands: The registry and logic for all commands.pkg/pubsub: Independent message hub for real-time communication.
This project is a personal implementation built to learn Go concurrency and network programming.
