Redis for Java Developers

A complete Redis development course for the Java programmer.

Register for this course

What you’ll learn

Redis for Java Developers teaches you how to build robust Redis client applications in Java using the Jedis client library. The course focuses on writing idiomatic Java applications with the Jedis API, describing language-specific patterns for managing Redis database connections, handling errors, and using standard classes from the JDK. The course material uses the Jedis API directly with no additional frameworks. As such, the course is appropriate for all Java developers, and it clearly illustrates the principles involved in writing applications with Redis.

What you’ll build

To get practical experience with Java 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 with Dropwizard
  • A Vue.js front end

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

The server will also use Redis to implement a rate-limiting system on API calls.

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

Course Outline

Week 1Week 2Week 3
  • Overview and Introduction
  • Hello Redis
  • Redis Clients and the Jedis Interface
  • Coding Challenge Intro
  • 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

The course assumes that the student is familiar with Java programming and Maven. Students should already be familiar with Redis and Redis data structures to the level covered in RU101.

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 www.youtube.com and university.redislabs.com (i.e. non-blocked access)

Course Instructor

Kyle Banker

Kyle Banker is Director of Developer Education at Redis Labs. He’s worked extensively in data engineering, is enthusiastic about data stores and distributed systems, and is passionate about explaining technology as clearly as possible.

Kyle holds dual degrees in English literature and philosophy.