Learn network programming and data structures by building a Redis-like server from scratch with C/C++.
Why build Redis? The knowledge required is broader and deeper than usual application-level development. It's a good way to level up your skills (mainly network programming and data structures). Why from scratch? A quote from Richard Feynman: "What I cannot create, I do not understand". Human understandings are filled with holes aka "things I don't know I don't know". Building from scratch is a way to ensure your understanding is complete. Why C? C is widely used in system programming and infrastructure software. Learn how C is used in real projects, with straightforward C code. No prior C/C++ experience is required. Why a book? The Redis project is a complex software system built with lots of effort, which can be harder to grasp for beginners. The book breaks down the core concepts into easy-to-digest steps.
Stumbled on Build Your Own Redis with C/C++. Decided to read it.
To some extent… I’m not sure what the point is. It does definitely go into a lot of the networking and data structure details you’d need to build your own Redis. So it certainly lives up to the name.
On the other hand, I feel like a lot of the book is spent down in the weeds, implementing some of the less important details of how Redis works. At that level, it’s a generic networking/data structures book with Redis as the example. Which works, just not something that I need at this point.
So is it work reading? Maybe. Give it a try. You can read it online for free and buy an epub if you find it worthwhile.
For me though, I think the greatest thing that I got out of it was really wanting to write my own Redis! Albeit in Rust. Check it out: Cloning Redis in Rust