Redis for JavaScript Developers

Build full-fledged Redis applications with Node.js and Express.

Register for this course
This course is self-paced. You can access all of the course materials at any time. You'll need to complete all homework and the final exam by the end date, but you're free to do so at your own pace.

What you’ll learn

Redis for JavaScript Developers 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 data structures such as sorted sets and streams.

What you’ll build

To get practical experience with JavaScript and Redis, and to make the content a lot more relevant and interesting, you’ll help to build a solar power monitoring and ingestion application. The project consists of three components:

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

The API will load and query data from Redis using a data model that we’ll develop as part of the course. The project will involve the use of several Redis data structures, including:

  • Hashes
  • 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.

Throughout the course, you’ll get the opportunity to try what you’ve learned through a series of programming challenges.

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
  • Geo-Indexing Solar Sites
  • Criteria Searching with Geo
  • Redis Streams for Data Ingestion
  • Pipelining
  • Rate-Limiting
Week 4Week 5
  • Error Handling
  • Understanding Connection Pooling, Multi-threading, and Concurrency
  • Connecting to Partitioned Deployments
  • Debugging Jedis Programs
  • Understanding Client Internals: Protocols, Binary Data, and Encoding
  • Final Exam

Course Prerequisites

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

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.