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
January 23, 2024
Ends
March 07, 2024
Estimated Effort
~ 2 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+
  • Operating System: Mac OS X 10.7+ 64-bit, Ubuntu 14.04+ 64-bit, or Windows 10
  • Software: Java 8 SDK or newer plus Docker, or local install of Redis Stack. RedisInsight recommended but not required.
  • Access to youtube.com, university.redis.com and github.com
A photograph of Kyle Banker
Instructor Kyle Banker

Kyle Banker is the Senior Director of Field Engineering at Redis. 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.