Implement RougeDB, a Redis clone from outer space
Buy now
Learn more
Starting Out
Who should do this course
Course structure
Technical setup
Introduction
What is Redis?
Why Rust?
Part 1: RougeDB v1 - Using the Standard Library
What you'll learn from Part 1
Parsing commands (v1)
Setting up
Fixing mistakes with Git
Adding command-line arguments to the client
Accepting multiple commands
Creating commands from a client
How to add a Redis server to your project for testing
Enable users to specify the server to connect to as a command-line argument
Provide usage documentation
How Redis commands are structured
Parse SimpleString messages from a Redis server
Generating a command to that can talk to a real Redis server!
A command parser using methods from Rust's standard library
Data store (v1)
How Redis stores data in memory
Implement the GET and SET commands to store byte slices
Implement the INCR and DECR commands to store integers
Testing the data store
Persistence (v1)
How Redis persists data
Implement whole-database snapshots
Testing the persistence layer
Networking (v1)
How clients connect to Redis over the network
A basic TCP server using the standard library to handle incoming client connections
Add multithreading
Test the server
Part 2: RougeDB 2 - Increasing Performance with Async and Third-Party Crates
What you'll learn from Part 2
Parsing commands (v2)
The syn crate and its benefits
Re-write the command parser using syn
Data store (v2)
Locking strategies
Enable multiple readers and writers
Persistence (v2)
The serde and bincode crates and their benefits
Re-write the data store using these crates
Networking (v2)
Introduction to tokio crate and asynchronous Rust
Re-write the server using tokio
Part 3: Building a More Complete System
Creating an extendable database
Web Interface and Metrics
A simple web interface
Emit memory usage metric
Emit concurrent connections metric
Emit command usage metrics
Lua Scripting
Introducing the lua crates
Implement EVAL and provide basic Lua scripting
Error Handling
Recovering from panics
Let it crash?
Products
Course
Section
Lesson
Add multithreading
Add multithreading
Implement RougeDB, a Redis clone from outer space
Buy now
Learn more
Starting Out
Who should do this course
Course structure
Technical setup
Introduction
What is Redis?
Why Rust?
Part 1: RougeDB v1 - Using the Standard Library
What you'll learn from Part 1
Parsing commands (v1)
Setting up
Fixing mistakes with Git
Adding command-line arguments to the client
Accepting multiple commands
Creating commands from a client
How to add a Redis server to your project for testing
Enable users to specify the server to connect to as a command-line argument
Provide usage documentation
How Redis commands are structured
Parse SimpleString messages from a Redis server
Generating a command to that can talk to a real Redis server!
A command parser using methods from Rust's standard library
Data store (v1)
How Redis stores data in memory
Implement the GET and SET commands to store byte slices
Implement the INCR and DECR commands to store integers
Testing the data store
Persistence (v1)
How Redis persists data
Implement whole-database snapshots
Testing the persistence layer
Networking (v1)
How clients connect to Redis over the network
A basic TCP server using the standard library to handle incoming client connections
Add multithreading
Test the server
Part 2: RougeDB 2 - Increasing Performance with Async and Third-Party Crates
What you'll learn from Part 2
Parsing commands (v2)
The syn crate and its benefits
Re-write the command parser using syn
Data store (v2)
Locking strategies
Enable multiple readers and writers
Persistence (v2)
The serde and bincode crates and their benefits
Re-write the data store using these crates
Networking (v2)
Introduction to tokio crate and asynchronous Rust
Re-write the server using tokio
Part 3: Building a More Complete System
Creating an extendable database
Web Interface and Metrics
A simple web interface
Emit memory usage metric
Emit concurrent connections metric
Emit command usage metrics
Lua Scripting
Introducing the lua crates
Implement EVAL and provide basic Lua scripting
Error Handling
Recovering from panics
Let it crash?
Lesson unavailable
Please
login to your account
or
buy the course
.