RU102J · Self paced
Redis for Java developers
A complete Redis development course for the Java programmer.
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
- February 20, 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. Redis Insight recommended but not required.
- Access to youtube.com, university.redis.com and github.com
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.