From 80100f574d8cf6c231217678356324d8ffa7140f Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 11 Jul 2026 13:28:45 +0200 Subject: readme --- README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..622011e --- /dev/null +++ b/README.md @@ -0,0 +1,49 @@ +# 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. +- **Modular Architecture:** Easy-to-extend command registry for adding new features. + +## Quick Start + +### 1. Run the Server + +```bash +go run main.go + +``` + +### 2. Connect with `redis-cli` + +Open a new terminal window and run: + +```bash +redis-cli + +``` + +### 3. Try it out + +```bash +> 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._ -- cgit v1.2.3