Initially inspired by the great work at CodeCrafters, I decided to try and implement Redis from scratch in golang, as a learning exercise.
This redis implementation includes the following features:
- TCP listening on exposed port
6379
- Handle concurrent client connections
- Serve RESP encoded queries coming from clients
- Return RESP encoded responses, including error messages
- Serve the following Redis commands:
The source code can be found in the src
folder.
- src
|- client
|- core
|- server
There, you'll find:
- The
client
folder (redis-go/redis
) - an implementation of a Redis golang client - The
server
folder (redis-go/server
) - an implementation of a Redis server - The
core
folder (redis-go/core
) - code which can be used by both the client and server packages.