Redis for JavaScript Developers

RU102JS provides a deep dive into Redis for Node.js applications. You can expect to learn how to make connections to Redis, store and retrieve data, and leverage essential Redis features such as sorted sets and streams.

Enrollment is Closed
  • Course Number

  • Self-Paced

  • Estimated Effort


What you will learn

RU102JS provides a deep dive into Node.js application development with Redis. You can expect to learn how to make connections to Redis, store and retrieve data, and leverage essential Redis features such as sorted sets and streams.

What you will build

As the course progresses, you'll write code that implements the features of a solar power monitoring application. This real-world project consists of three components:

  • A command-line data loading application
  • A REST API backend using Express
  • A Vue.js front end (No Vue experience required!)

We'll store data in Redis using a data model that we'll develop along the way. The project will leverage a number of Redis data structures, including:

  • Hashes
  • Sets
  • Sorted Sets
  • Geospatial indexes
  • Streams

We'll provide examples of best practices such as the use of pipelining, transactions, and Lua scripting.

We'll also demonstrate several common Redis patterns, including rate-limiting for API calls and leaderboards for top-producing solar sites.

Course Outline

Week 1

Week 2

Week 3

  • Overview and Introduction
  • Hello Redis
  • Getting Started with the Redis Client for Node.js
  • Introduction to Coding Challenges and test-driven development
  • Modeling a Domain Problem in Redis
  • Extending Hashes for Denormalized Recency Data
  • Storing Solar Site Metrics
  • Sorted Sets for Site Energy Status
  • Building Leaderboards and Top-N/Bottom-N Queries
  • Pipelining
  • Transactions
  • Geo-Indexing Solar Sites
  • Criteria Searching with Geo
  • Redis Streams for Data Ingestion
  • Rate-Limiting

Week 4

Week 5

  • Rate-Limiting
  • Blocking Commands
  • Time-Series Data
  • Error Handling and Debugging
  • Understanding Client Internals: Protocols, Binary Data, and Encoding
  • Final Exam

Course Requirements

RU102JS has no course prerequisites. However, we assume that students already understand:

  • The JavaScript programming language (including ES6 features)
  • The Node.js programming model
  • The basics of the Express web application framework
  • Redis and Redis Data Structures (approximately to the level covered in the RU101 course)

Software Requirements

  • 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 Instructors

Simon Prickett

Simon Prickett is a Curriculum Software Engineer at Redis Labs. He began his career writing C++ for Hewlett-Packard Labs, and has subsequently held senior roles with employers ranging from startups to enterprises including Capital One, USA Today and New Zealand's Customs Service.

Simon has created software for mobile and embedded devices since the late 1990s, from early browser-based cellphone portals to today's IoT and cloud architectures. The need for high performance, efficiency, and personalization that makes these systems successful led him to discover Redis.

Away from professional life Simon enjoys traveling, cycling, and building devices with microcontrollers. Simon holds a Computing Science degree from Aston University, located in Birmingham England.