Duration
21 hours (usually 3 days including breaks)
Requirements
- Participants should be comfortable with basic system administration tasks using linux command line. Some topics require programming or scripting skills. When booking, please list the programming languages that you are familiar with. If there are none, we’ll just issue redis commands from redis-cli.
Overview
Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker.
Course Outline
Module 1: Initial setup
- Redis Releases
- Installation
- Configuration
- Security model
- Starting Redis during boot
- Security hardening applied by common Linux distributions
- Client libraries and language bindings
Module 2: Data model
- Primitive data types and commands to manipulate them
- Typical use cases for each data type
- Common naming conventions for Redis keys
- “Redis is mostly single-threaded” – what it means in practice
- Redis wire protocol
- What to do if your client library does not know about some useful command
- Why some commands are deliberately unavailable in some client libraries
- How to adjust your mindset from the one of a relational database designer
- General tips on data organization
- Expiration
- Pub/Sub
- Transactions & Lua scripts
- External modules
- General tips on data consistency
Module 3: Performance tips
- Benchmarking Redis
- Commands to avoid
- Debugging latency problems
- Problems with big DEL requests – what to use instead
- Pipelining
- Mass insertion
- Debugging memory overuse
- Memory optimization tips
Module 4: Operations
- Available persistence mechanisms
- Precautions to avoid SSD wearout
- Backup and restore
- Tools for exploring database contents
- Tools for dump analysis
- Tuning durability vs performance
- Switching between RDB and AOF
- Use cases for diskless Redis
- OS-level tunables relevant for Redis
- Monitoring Redis performance
Module 5: More than one Redis
- Starting multiple instances of Redis on one server
- Application-level partitioning
- Master-slave replication
- High availability using Redis Sentinel
- Redis Cluster
- Making Sentinel and Cluster work across NAT
- Making consistent backups
Module 6: High Availability
- Install and Setup multi-Redis servers
- Standalone server with multiple instances
- Master/slave replication
- Redis HA cluster with Sentinel
- Redis sharding cluster
- Combination of Redis replication (with Sentinel) + Sharding capability
- Monitoring, backup/restore and performance tuning for the setup