Redis Internals
This is a self-paced course where you will explore the internal workings of Redis by reimplementing its key features in Golang. Together, we will recreate mechanisms such as the event loop, serialization protocol, persistence, pipelining, eviction, and transactions.
Read more about the course
Redis is one of the most versatile modern databases. Although it is often used as a cache, it can also function as a message broker, streaming engine, and much more. This course will answer your main questions about Redis: why is it so fast? and how does it handle a huge number of TCP connections while remaining single-threaded?
Throughout the course, we will deconstruct Redis step by step, and in the process, we will write its full implementation in Go. The implementation will be compatible with any Redis client in the world - you will be able to connect to our database just like with the real Redis! All the code is available in open access on GitHub (DiceDB/dice).
Why enroll?
- Understand the architecture from the inside
- You will learn how databases are created from scratch and understand the key architectural decisions that make Redis so unique.
- Explore the "unknown"
- Master the most intriguing concepts and "tricky" algorithms that underlie the high speed and flexibility of Redis.
- Become a better engineer
- You will grow as a developer and be able to call yourself a true "Asli Engineer."
Participant Requirements
We will be implementing the main mechanisms of Redis, such as the event loop, serialization protocol, persistence, pipelining, and eviction. Therefore, it is important to have:
- basic knowledge of Go
- a development environment on Linux
- a Google account (as only Google sign-in is supported)
Watch Online Redis Internals
# | Title | Duration |
---|---|---|
1 | Course Introduction | 10:55 |
2 | What makes Redis special? | 22:04 |
3 | Writing a Simple TCP Echo Server | 16:25 |
4 | Speaking the Redis' Language | 15:50 |
5 | Implementing RESP | 14:38 |
6 | Implementing PING | 19:29 |
7 | IO Multiplexing and Event Loops | 21:15 |
8 | Handling multiple concurrent clients | 26:29 |
9 | Implementing GET, SET, and TTL | 22:09 |
10 | Implementing DEL, EXPIRE and auto-deletion | 27:23 |
11 | Eviction strategies and implementing simple-first | 20:24 |
12 | Implementing Command Pipelining | 22:00 |
13 | Implementing AOF Persistence | 21:05 |
14 | Object, Encodings, and Implementing INCR | 24:48 |
15 | Implementing INFO and allkeys-random eviction | 19:37 |
16 | The Approximated LRU Algorithm | 23:15 |
17 | Implementing the Approximated LRU Algorithm | 25:27 |
18 | Understanding how Redis caps memory | 13:20 |
19 | Overriding malloc for better performance | 06:11 |
20 | Implementing Graceful Shutdown | 37:18 |
21 | Implementing Transactions | 22:00 |
22 | List Internals - Ziplist and Quicklist | 28:16 |
23 | Set Internals - Intset | 13:25 |
24 | Geospatial Queries and Geohash | 21:39 |
25 | String Internals - Simple Dynamic Strings | 15:56 |
26 | Hyperloglog and Cardinality Estimation | 13:22 |
27 | LFU and Approximate Counting | 20:49 |
28 | What next? | 01:12 |
Similar courses to Redis Internals

Master Goappliedgo.com (Christoph Berger)

Introduction to Testing in Go (Golang)udemy

Angular and Golang: A Rapid Guide - Advancedudemy

Go - The Complete GuideAcademind Pro

Web Development with Google’s Go (golang) Programming Languagegreatercommons.com

Go in Practice, Second EditionMatt ButcherMatt FarinaNathan Kozyra

Building Modern Web Applications with Go (Golang)udemy

Node JS: Advanced ConceptsudemyStephen Grider
![Golang + Lambda Masterclass [EARLY-ACCESS]](https://cdn.courseflix.net/courses/100x56/golang-lambda-masterclass-early-access.jpg?d=1755464059499)
Golang + Lambda Masterclass [EARLY-ACCESS]Gourav Kumar
