This repo exists for two reasons: to get my Java backend skills sharp again, and to learn Redis by building the core pieces myself.
It is also a portfolio project: a practical, iterative codebase where I can show how I think about protocols, networking, and stateful systems.
This work is based on the CodeCrafters Redis challenge, but this repository is my own implementation notes and progress.
Instead of trying to mirror Redis all at once, I use this project to build and refine the fundamentals in small iterations:
- TCP server behavior and client handling
- RESP parsing and command flow
- In-memory data handling and expiry behavior
- Redis-style command semantics
As the project evolves, command support and internals will continue to change.
You can run the server locally but keep in mind that this is just a learning project, and in no circumstance a good Redis replacement.
./run.shThen connect with redis-cli (default port 6379) and try a quick smoke test:
redis-cli PING
redis-cli SET language java
redis-cli GET language
redis-cli TYPE language- Track visible progress as I level up in Java again
- Learn Redis from the inside out by implementing it
- Keep a concrete, hands-on backend project in my portfolio