2. What Makes Redis Special? | Redis Internals



2. What Makes Redis Special? | Redis Internals

2. What Makes Redis Special? | Redis Internals

System Design for Beginners: https://arpitbhayani.me/sys-design
System Design for Experienced Engineers: https://arpitbhayani.me/masterclass
Become a member for exclusive in-depth videos: https://www.youtube.com/c/ArpitBhayani/join
Redis Internals: https://arpitbhayani.me/redis

This is the first video from the Redis Internals course by Arpit Bhayani. In this video, we talk about things that make Redis Special. A key highlight we touch upon is how come a single-threaded database can support such a large number of concurrent requests. What is the secret sauce behind it?

If you find this video amusing, do consider enrolling in the course at https://arpitbhayani.me/redis-internals.

## About the course

Redis has to be the most versatile modern database out there. Although it is heavily used as a cache, it can also be used as a Message Broker, a Streaming engine, and so much more. This course will be an answer to some of your most common questions about Redis – why is it so fast? and how it can handle a large number of TCP connections while being single-threaded?

In this self-paced recorded course, we will be understanding the internals of Redis by actually reimplementing it in Golang, and the features include

– event loop
– serialization protocol
– approximated LRU eviction
– command pipelining and transactions

Our reimplementation in Golang will be an actual drop-in replacement of Redis which means you would be able to connect to this DB through any Redis client in the world!

### Program pre-requisites

In this course, we would be reimplementing the core features of Redis, like event loop, serialization protocol, persistence, pipelining, and eviction; hence we would need a basic familiarity with Go. We will also be writing our own Event Loop and because every OS exposes its own set of System Calls, we will be restricting ourselves to Linux, and hence having a Linux-based development environment is essential to follow. In a gist, the program pre-requisites are

– basic familiarity with Go
– linux-based development environment
– a Google account because I only support Sign-in with Google 🙂

#AsliEngineering

Comments are closed.