diff options
| -rw-r--r-- | README.md | 49 |
1 files changed, 49 insertions, 0 deletions
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._ |
