aboutsummaryrefslogtreecommitdiff

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.