Learn about TCP servers, the Redis protocol and more
You're welcome to study the full challenge structure and stage instructions for free. A membership is needed for submitting code and viewing solutions.
Want to try a free challenge? Try Build your own Kafka — it's free during beta.
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.
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.
In this challenge extension you'll add support for Transactions to your Redis implementation.
Along the way, you'll learn about the MULTI, EXEC, and DISCARD commands, as well as how Redis handles transactions atomically.
In this challenge extension you'll add support for Replication to your Redis implementation.
Along the way you'll learn about how Redis's leader-follower replication works, the PSYNC command and more.
In this challenge extension you'll add persistence support to your Redis implementation.
Along the way you'll learn about Redis's RDB file format and more.
In this challenge extension you'll add support for Publish/Subscribe (Pub/Sub) to your Redis implementation.
Along the way, you'll learn commands like SUBSCRIBE, PUBLISH, and more.
In this challenge extension you'll add support for Sorted Sets (zsets) to your Redis implementation.
Along the way, you'll learn commands like ZADD, ZRANGE, and more.
In this challenge extension you'll add support for Geospatial Commands to your Redis implementation.
Along the way, you'll learn commands like GEOADD, GEOSEARCH, and more.
Charles Guo
Software Engineer, Stripe
“
I think the instant feedback right there in the git push is really cool.
Didn't even know that was possible!
Patrick Burris
Senior Software Developer, CenturyLink