Redis for Java Developers banner image

RU102J · Self paced

Redis for Java Developers

A complete Redis development course for the Java programmer.

Register  
 course image

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 1

  • Overview and Introduction
  • Hello Redis
  • Redis Clients and the Jedis Interface
  • Coding Challenge Intro

Week 2

  • Modeling a Domain Problem in Redis
  • Storing Solar Site Metrics
  • Sorted Sets for Site Energy Status
  • Building Leaderboards and Top-N/Bottom-N Queries

Week 3

  • Geo-Indexing Solar Sites
  • Criteria Searching with Geo
  • Redis Streams for Data Ingestion
  • Pipelining
  • Rate-Limiting

Week 4

  • Error Handling
  • Understanding Connection Pooling, Multi-threading, and Concurrency
  • Connecting to Partitioned Deployments
  • Debugging Jedis Programs
  • Understanding Client Internals: Protocols, Binary Data, and Encoding

Week 5

  • Final Exam
Course Number
RU102J
Starts
June 02, 2020
Ends
July 31, 2020
Estimated Effort
~ 3 hours per week

Prerequisites

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

  • Java and Maven
  • Redis and Redis Data Structures, at least at a basic level

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 https://youtube.com and https://university.redislabs.com (i.e. non-blocked access)
A photograph of Kyle Banker
Instructor Kyle Banker

Kyle Banker runs 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.