Redis for High Availability and Performance Training Course Training Course

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

Redis for Developers and System Administrators Training Course

Duration

14 hours (usually 2 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

Build a Streaming Twitter Filter with Python and Redis

Learn how to use Twitter’s Streaming API, Redis and Flask together.

Requirements

  • Understanding of Python and web development

Description

This video series will walk through building a streaming Twitter filter using Python and Redis. 

Here is a synopsis of each video:

  1. Talks about the project and data pipeline
  2. Show how to ingest the Twitter stream
  3. Explain sentiment analysis and how to do it using Python
  4. Explain Redis and show how to setup a local server
  5. Design a pen & paper mockup, then convert to front-end code
  6. Prepare a custom Python class to preprocess and format data fields
  7. Build a simple Flask server to combine all the code so far
  8. Explores further improvements to the pipeline

Who this course is for:

  • Intermediate programmers who are interested in data engineering

Course content

1 section • 8 lectures • 1h 5m total length