Redis Internals

9h 6m 41s
English
Paid

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

Join premium to watch
Go to premium
# 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 Go

Master Goappliedgo.com (Christoph Berger)

Category: Golang (Google Go)
Duration 6 hours 32 minutes 20 seconds
Introduction to Testing in Go (Golang)

Introduction to Testing in Go (Golang)udemy

Category: Golang (Google Go)
Duration 12 hours 17 minutes 47 seconds
Angular and Golang: A Rapid Guide - Advanced

Angular and Golang: A Rapid Guide - Advancedudemy

Category: Angular, Golang (Google Go)
Duration 9 hours 40 minutes 39 seconds
Go - The Complete Guide

Go - The Complete GuideAcademind Pro

Category: Golang (Google Go)
Duration 15 hours 23 minutes 30 seconds
Web Development with Google’s Go (golang) Programming Language

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

Category: Golang (Google Go), MongoDB
Duration 18 hours 59 minutes 31 seconds
Building Modern Web Applications with Go (Golang)

Building Modern Web Applications with Go (Golang)udemy

Category: Golang (Google Go)
Duration 29 hours 6 minutes 20 seconds
Node JS: Advanced Concepts

Node JS: Advanced ConceptsudemyStephen Grider

Category: Node.js, Redis
Duration 16 hours 3 minutes 30 seconds
Golang + Lambda Masterclass [EARLY-ACCESS]

Golang + Lambda Masterclass [EARLY-ACCESS]Gourav Kumar

Category: AWS, Golang (Google Go)
Duration 1 hour 41 minutes 25 seconds
Let's Build a Go version of Laravel

Let's Build a Go version of Laraveludemy

Category: Golang (Google Go), Laravel
Duration 19 hours 22 minutes 16 seconds