Skip to main content

Redis Internals

9h 6m 41s
English
Paid

Course description

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

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 28 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Course Introduction

All Course Lessons (28)

#Lesson TitleDurationAccess
1
Course Introduction Demo
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

Unlock unlimited learning

Get instant access to all 27 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Working with Microservices in Go (Golang)

Working with Microservices in Go (Golang)

Sources: udemy
For a long time, web applications were usually a single application that handled everything—in other words, a monolithic application. This monolith handled user authentication, ...
10 hours 51 minutes 24 seconds
Redis: The Complete Developer's Guide

Redis: The Complete Developer's Guide

Sources: udemy, Stephen Grider
In a world with hundreds of different databases, one database rises to rule them all. Redis is an in-memory database known for its speed and simplicity. Origin
15 hours 41 minutes 24 seconds
Go (Golang) Programming The Complete Go Bootcamp 2023

Go (Golang) Programming The Complete Go Bootcamp 2023

Sources: udemy
Fully updated for 2021. This Go Programming course covers every major topic, including Pointers, Methods, and Interfaces (Go OOP), Concurrency In-Depth (Goroutines, Channels, Mu...
17 hours 49 minutes 29 seconds
SocketIO v4, with websockets - the details.

SocketIO v4, with websockets - the details.

Sources: udemy
This course is meant to alleviate that! It is not a quick start guide to socket.IO. There are loads of those all over the Internet. You should definitely look elsewhere if you a...
24 hours 34 minutes 57 seconds
Angular and Golang: A Practical Guide

Angular and Golang: A Practical Guide

Sources: udemy
I'm a FullStack Developer with 10+ years of experience. I'm obsessed with clean code and I try my best that my courses have the cleanest code possible. My teaching style is very...
6 hours 35 minutes 27 seconds