aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md49
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._