Build Your Own Redis Server (Python Edition)
Buy now
Learn more
Introduction
Introduction
Learn About Redis
Step 0 - Setting Up
Step Goals
Installing Redis
Setting Up Python
Learn To Use Redis, Redis CLI And Redis Benchmark
Create A GitHub Repo For Your Project.
Step 1 - Introduction to RESP, Building a Protocol Handler Using Test-Driven Development
Introduction to RESP
Introduction to Test Driven Development
Using Test Driven Development to Build a Protocol Handler
Step 1 - Challenge: Protocol Handling
Step 1 - Solution: Protocol Handling
Step 2 - Creating a Network Client and Server
Introduction To Creating A Network Client And Server
Serialising the RESP Data Types
Building a Simple Redis CLI
Testing the CLI Against Redis
Sample Solution for a Simple Redis CLI
Step 2 - Challenge: Handling PING and ECHO Commands
Building a Simple Server To Handle Incoming Connections
Responding To The PING And ECHO Commands
Step 2 - Solution: Handling PING and ECHO Commands
Step 3 - Data Structures, Set and Get
Set Up Continuous Integration
Step 3 - Challenge: SET and GET
Adding The Core Data Structure
Handling The Set Command
Handling the Get command
Using the Redis CLI to test Set and Get
Step 3 - Solution: SET and GET
Step 4 - Handling Concurrency
Step 4 - Challenge: Handling Concurrent Clients
Threads Versus Async
Making The Data Store Thread-Safe
Handling Concurrent Clients With Threads
Using The Redis CLI And Redis Benchmark To Test Concurrency
Step 4 - Solution: Handling Concurrent Clients With Threads
Step 4 - Async Solution: Handling Concurrent Clients With Async IO
Step 5 - Implementing Expiry
Introducing The Two Methods Of Expiry
Step 5 - Challenge: Implementing Key Expiry
Updating The Data Store And Set Command Handler Ready For Expiry
Implementing Expire On Read
Implementing Background Expiry
Step 5 - Solution: Implementing Key Expiry (Common Parts)
Step 5 - Solution: Implementing Key Expiry Using Threads
Step 5 - Solution: Implementing Key Expiry Asynchronously
Step 6 - Implementing More Commands
Step 6 - Challenge: Adding More Commands
Impelenting EXISTS and DEL
Implementing INCR and DECR
Implementing LPUSH, RPUSH And LRANGE
Step 6 - Solution: Adding More Commands
Step 7 - Performance
Step 7 - Challenge: Performance Optimisation and Benchmarking
Benchmarking Your Server
How To Optimise For Performance
Performance Tuning The Server
Step 8 - Persistence
Step 8 - Challenge: Persistence
Persisting The Database
Loading The Database
Step 8 - Solution: Persistence
Closing Remarks
The Complete Final Solution
Going Further
Wrapping Up
Products
Course
Section
Lesson
Step 4 - Solution: Handling Concurrent Clients With Threads
Step 4 - Solution: Handling Concurrent Clients With Threads
Build Your Own Redis Server (Python Edition)
Buy now
Learn more
Introduction
Introduction
Learn About Redis
Step 0 - Setting Up
Step Goals
Installing Redis
Setting Up Python
Learn To Use Redis, Redis CLI And Redis Benchmark
Create A GitHub Repo For Your Project.
Step 1 - Introduction to RESP, Building a Protocol Handler Using Test-Driven Development
Introduction to RESP
Introduction to Test Driven Development
Using Test Driven Development to Build a Protocol Handler
Step 1 - Challenge: Protocol Handling
Step 1 - Solution: Protocol Handling
Step 2 - Creating a Network Client and Server
Introduction To Creating A Network Client And Server
Serialising the RESP Data Types
Building a Simple Redis CLI
Testing the CLI Against Redis
Sample Solution for a Simple Redis CLI
Step 2 - Challenge: Handling PING and ECHO Commands
Building a Simple Server To Handle Incoming Connections
Responding To The PING And ECHO Commands
Step 2 - Solution: Handling PING and ECHO Commands
Step 3 - Data Structures, Set and Get
Set Up Continuous Integration
Step 3 - Challenge: SET and GET
Adding The Core Data Structure
Handling The Set Command
Handling the Get command
Using the Redis CLI to test Set and Get
Step 3 - Solution: SET and GET
Step 4 - Handling Concurrency
Step 4 - Challenge: Handling Concurrent Clients
Threads Versus Async
Making The Data Store Thread-Safe
Handling Concurrent Clients With Threads
Using The Redis CLI And Redis Benchmark To Test Concurrency
Step 4 - Solution: Handling Concurrent Clients With Threads
Step 4 - Async Solution: Handling Concurrent Clients With Async IO
Step 5 - Implementing Expiry
Introducing The Two Methods Of Expiry
Step 5 - Challenge: Implementing Key Expiry
Updating The Data Store And Set Command Handler Ready For Expiry
Implementing Expire On Read
Implementing Background Expiry
Step 5 - Solution: Implementing Key Expiry (Common Parts)
Step 5 - Solution: Implementing Key Expiry Using Threads
Step 5 - Solution: Implementing Key Expiry Asynchronously
Step 6 - Implementing More Commands
Step 6 - Challenge: Adding More Commands
Impelenting EXISTS and DEL
Implementing INCR and DECR
Implementing LPUSH, RPUSH And LRANGE
Step 6 - Solution: Adding More Commands
Step 7 - Performance
Step 7 - Challenge: Performance Optimisation and Benchmarking
Benchmarking Your Server
How To Optimise For Performance
Performance Tuning The Server
Step 8 - Persistence
Step 8 - Challenge: Persistence
Persisting The Database
Loading The Database
Step 8 - Solution: Persistence
Closing Remarks
The Complete Final Solution
Going Further
Wrapping Up
Lesson unavailable
Please
login to your account
or
buy the course
.