Skip to main content

Redis for Java Developers

RU102J teaches students how to build robust Redis client applications in Java using the Jedis client library. RU102J focuses on writing idiomatic Java applications with the Jedis API, including how to work with 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 without additional frameworks, so students learn the basic principles of working with Redis.

Enrollment is Closed
  • Course Number

    RU102J
  • Classes Start

  • Classes End

  • Estimated Effort

    3:00/week

What you will learn

RU102J teaches students how to build robust Redis client applications in Java. RU102J focuses on writing idiomatic Java applications with the Jedis API, including how to work with language-specific patterns for managing Redis database connections, handling errors, and using standard classes from the JDK.

What you will build

In order to get practical experience with Java and Redis, 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 with several Redis data structures, including:

  • Hashes
  • Sets
  • Geospatial indexes
  • Streams

We'll demonstrate best-practices like proper error handling and recovery, try-with-resource blocks, and connection management.

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

Course Outline

Week 1

Week 2

Week 3

  • Overview and Introduction
  • Hello Redis
  • Redis Client 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 4

Week 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 Requirements

There are no course prerequisites for RU102J, but the course assumes the student already understands:

  • The Java programming language
  • How to build and compile Java software in a shell environment
  • Redis and Redis Data Structures

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.


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.