Skip to content

hhow09/codecrafters-redis-go

Repository files navigation

Build your own Redis

progress-banner

Redis is an in-memory data structure store often used as a database, cache, message broker and streaming engine. In this challenge you'll build your own Redis server that is capable of serving basic commands, reading RDB files and more.

Along the way, you'll learn about TCP servers, the Redis Protocol and more.

Key Features

  • Replica handshake with master
  • Replica Sync RDB from master
  • Command propagation to replicas
  • WAIT Command

Streams

Transactions

passed tests from every stage from codecrafters.io

complete_profile.png


Development Notes

This is a starting point for Go solutions to the "Build Your Own Redis" Challenge.

In this challenge, you'll build a toy Redis clone that's capable of handling basic commands like PING, SET and GET. Along the way we'll learn about event loops, the Redis protocol and more.

Note: If you're viewing this repo on GitHub, head over to codecrafters.io to try the challenge.

Passing the first stage

The entry point for your Redis implementation is in app/server.go. Study and uncomment the relevant code, and push your changes to pass the first stage:

git add .
git commit -m "pass 1st stage" # any msg
git push origin master

That's all!

Stage 2 & beyond

Note: This section is for stages 2 and beyond.

  1. Ensure you have go (1.19) installed locally
  2. Run ./spawn_redis_server.sh to run your Redis server, which is implemented in app/server.go.
  3. Commit your changes and run git push origin master to submit your solution to CodeCrafters. Test output will be streamed to your terminal.