Skip to main content

RU101Introduction to Redis Data Structures

Introduction to Redis Data Structures

In this course you will learn the techniques and patterns to successful model various data structures to effectively and efficiently use Redis. Various mini projects will be used to create an event booking system for the Redis Games 2020 in Tokyo.

Enrollment is Closed
  • Course Number

  • Classes Start

  • Classes End

  • Estimated Effort


What you will learn

In this course we will cover the richness of Redis data structures and how to practically apply them to solve problems.

We will start with Keys and Strings as they are fundamental building blocks for using Redis before we cover Hashes, List, Sets and Sorted Sets.

Since Redis is often used when high throughput and low latency are required, we will talk about Big-O and Time Complexity and how this will help you select the right data structure and commands to solve your domain problem.

We will dive into other data structures, like Geospatial and Bit Fields, and will take a look at Capped Collection, Set operations and Publish/Subscribe and how they can be applied.

What you will build

Various data models to support use case for the Redis Games application. The redis-cli will be used for interactive example, code solutions will be provided in Python.

Course Outline

Week 1

Week 2

Week 3

  • Course Introduction
  • Data Structures - Part One
    • Keys & Expiration
    • Strings
    • Hashes
    • Lists
  • Data Structures - Part Two
    • Sets
    • Sorted Sets
  • Capped Collections & Set Operations
  • Use Case: Faceted Search
    • Object Inspection
    • Set intersection
    • Hashing & Compound Keys
  • Performance & Big O notation
  • Transactions
    • Basic Transactions
    • Optimistic concurrency control
  • Object Storage
    • Simple Objects
    • Nesting, Relationships & Folding
  • Use Case: Inventory Control
    • Overview
    • Reservations
    • Expiration of Reservations

Week 4

Week 5

Week 6

  • Bitfields
  • Use Case: Seat Reservations
    • Domain problem
    • Creating seat maps
    • Checking availability
    • Reserving Seats
  • Publish / Subscribe
  • Use Case: Fan out
    • Syndication of events
    • Filtered events
  • Geospatial
  • Use Case: Finding venues
    • Creating Geospatial objects
    • Finding venues from another point or venue
    • Calculating distances
  • Lua scripting
  • Use Case: Inventory Control with Lua
    • Managing and executing scripts
    • Purchase workflow
    • Reserving Tickets
  • Final Exam


  • Web Browser: Firefox 39.0+ or Chrome 43+ (Internet Explorer is currently not supported)
  • Operating System: Mac OS X 10.7+ 64-bit, Ubuntu 14.04+ 64-bit, or Windows 8+ (64-bit)
  • Access to and (i.e. non-blocked access)

Course Instructor

Alvin Richards

Alvin is Chief Education Officer at Redis Labs, and has held various executive roles, most recently as the Field Chief Technology Officer at MariaDB, Vice President of Product at Aerospike and engineering lead at MongoDB. He has worked with SasS startups, enterprise storage (NetApp) and byte-code virtualization and containers (Docker). Alvin’s early experience as a software engineer at Oracle provided a springboard for his career success building and leading engineering teams across the globe.

Alvin holds a computer science degree from Thames Valley University and a Bachelor of Arts in photography from Nottingham Trent University, both in Great Britain.

Kyle Banker

Kyle Banker is Director of Developer Education at Redis Labs. He's held data engineering roles at various companies, most recently on a social media analytics product that reliably processed most of the social web (around 10^8 messages) each day, in real time. Kyle's interest in databases began in 2009, when he joined MongoDB as an early employee. There, he worked as a software engineer on the Ruby and C drivers and wrote the first edition of Manning's MongoDB in Action.

When not immersed in tech, Kyle can be found spending time in the Colorado mountains or playing piano in his jazz trio. He holds dual degrees in English literature and philosophy.