diff options
| author | alex <[email protected]> | 2026-07-11 13:28:45 +0200 |
|---|---|---|
| committer | alex <[email protected]> | 2026-07-11 13:28:45 +0200 |
| commit | 80100f574d8cf6c231217678356324d8ffa7140f (patch) | |
| tree | 0262417120c99b4cace23bcaf87b02ea1ee4f6f1 /README.md | |
| parent | 90778a710319efc44754d4b1a4e7e18ddad6661a (diff) | |
| download | redis-clone-80100f574d8cf6c231217678356324d8ffa7140f.tar.xz redis-clone-80100f574d8cf6c231217678356324d8ffa7140f.zip | |
readme
Diffstat (limited to 'README.md')
| -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._ |
