Software Engineering


Redis with Spring WebFlux

Scalable and Performant Reactive Microservices with Spring WebFlux & Redis

4.76 (17 reviews)

Redis with Spring WebFlux


12 hours


Aug 2021

Last Update
Regular Price

What you will learn


Spring WebFlux

Reactive Microservices



Scalable Performant Microservices


This is PART-2 of Spring WebFlux course series.

Spring WebFlux is a reactive non-blocking web stack which is scalable & provides better performance compared to traditional Spring Web MVC! In a Microservices architecture we do have a lot of network calls - to database servers or external APIs. sometimes we might do a heavy computation. How to avoid unnecessary network calls & heavy re-computation and How to make our Microservices more scalable. That is what this entire course is about!

By the end of this course you would be comfortable with:

  • Microservices Caching With Redis

    • Redis

      • Various Redis Data Structures

      • Key/Value

      • List

      • Set

      • Sorted Set

      • Hash

      • HyperLogLog

      • Redis PubSub

      • INCR / DECR

      • Queue / Stack

      • Rate Limiting

      • Batch

      • Transaction

      • Access Control List

  • Spring Data Reactive Redis / Redisson

      • A Java library for Redis which supports reactive streams

    • Cache aside pattern with annotations

    • Cache aside pattern for Reactive types

    • Creating a generic cache template

    • Caching, evicting cache

    • Local Cached Map

    • Capturing expired and deleted events from Redis

    • JMeter Performance Test which proves 80% performance improvement

  • Redis As Message Queue

    • Redis can be used as a message queue in Microservices architecture

    • We would demonstrate that in this course.

    • You even implement a Priority Queue using Redis

  • WebFlux WebSocket  + Redis PubSub

    • Developing a chat application using Spring WebFlux Websocket

    • Messages broadcasting using Redis Pub/Sub

    • Creating a chat room

  • Finding Trend

    • Developing a Product service which offers thousands of products

    • Finding a product trend based on users view

    • Pushing real time updates

  • Geospatial

    • Redis Geo spatial Data structure

    • Creating a restaurant locator application using Spring WebFlux + Redis

    • Based on the zip code provided, locate the nearby restaurants



MUST WATCH - What will you learn?

Need For Redis - Problem Statement & Course Structure



Redis - Crash Course

Redis Introduction

Redis Setup - Instructions

Redis Setup Using Docker

Redis Setup - Mac / Windows

Storing Simple Key Values

Accessing All Keys

Removing Keys

Expiring Keys - Part 1

Expiring Keys - Part 2

Set Options - XX/NX

Exists Command

INCR / DECR Commands

Redis Commands Cheat Sheet Download

Commands Cheat Sheet

Exercise - Rate Limit

Hash - Part 1

Hash - Part 2

List & Queue

Redis As Message Queue

List As Stack

Redis Set

Set Intersection & Union

Redis Set UseCase

Sorted Set - Part 1

Sorted Set - Part 2

Redis As Priority Queue

Redis Transaction - Part 1

Redis Transaction - Part 2

Saving Data On Disk


Redisson - Crash Course


Maven Dependencies

Project Setup

Redisson Client

Base Test

Key Value

Redisson Wiki

Redisson Codec

Bucket Expiry

Object Store

Number Store

Buckets As Map

Redis Config For Expired Events

Expired Event Listener

Deleted Event Listener

Map - Part 1

Map - Part 2

Map Cache

Local Cached Map - Part 1

Local Cached Map - Part 2

Local Cached Map As Config Push


Queue & Stack

Message Queue


Pub Sub

Pub Sub Pattern

Batch / Redis Pipeline


Sorted Set

ASSIGNMENT - Priority Queue

ASSIGNMENT SOLUTION - Priority Queue - Part 1

ASSIGNMENT SOLUTION - Priority Queue - Part 2


Spring WebFlux Caching


Redisson - Spring Data Redis Dependency

Spring Data Redis vs Redisson

Cache Aside Pattern

Cache Evict

Fib Service

@Cacheable - Part 1

@Cacheable - Part 2

Scheduled Cache Evict

@CachePut - Part 1

@CachePut - Part 2

Cache Annotation Limitations

City Service - App - Download

City Service - Client

City Service

City Service - Controller

Reactive - Cache Aside Demo

Setting TTL



Spring WebFlux & Redis : Performance

Project Setup

Product Service - V1

Postgres - Docker

Postgres Setup

Data Setup Service - Part 1

Data Setup Service - Part 2

JMeter Download

JMeter Set Up

JMeter - A Short Crash Course

Baseline Test

Adding Redisson

Abstract Cache Template

Cache Template Implementation

Product Service - V2

Product Service - V2 - Demo

Product Service - V2 - Performance Test

Product Service - V3 - Local Cached Map

Product Service - V3 - Demo

Product Service - V3 - Performance Test

Trending Service - ASSIGNMENT


ASSIGNMENT SOLUTION - Product Visit Service - Part 1

ASSIGNMENT SOLUTION - Product Visit Service - Part 2

ASSIGNMENT SOLUTION - Business Metrics Service


Chat Application With WebSocket

Chat Application Introduction

WebSocket Session

Chat Messages Broadcasting

WebSocket Config

WebSocket Test Client

HTML Template Download

Chat Application - HTML Template

Chat Application - Client Side Javascript - Part 1

Chat Application - Client Side Javascript - Part 2

Chat Application - Client Side Javascript - Part 3

Chat Application - DEMO & ASSIGNMENT


Chatting From 2 Different Instances

Redis Authentication

Access Control List - Introduction

Access Control List - Setting Up Permissions

Credentials Properties

Redisson - Setting Credentials

Redis Default User Credentials

Redis Configuration

GeoSpatial Application - Restaurant Locator


Texas Restaurant Locator

Adding Data Into Geo Data Structure

Search By Zip

Restaurant Locator Service - Part 1

Restaurant Locator Service - Part 2

HTML Template Download

Restaurant Locator Service - Frontend - Part 1

Restaurant Locator Service - Frontend - Part 2

Restaurant Locator Service - Frontend - Part 3

Restaurant Locator - DEMO

Thank You

Whats Next?

Thank You


Young16 August 2021

It is a lecture that is concise and gets to the point well. Also, you can enjoy studying while making many realistic projects. So I strongly recommend this lecture.

Artem3 August 2021

Before taking this course I was thinking that Redis is just for caching, and I wanted to learn how to use it in reactive manner. BUT! I was mistaken. I am glad to take Vinoth's course! It is WONDERFUL! A lot of time we spent with studying Redisson - high-performance async and lock-free Java Redis client. Using it in Spring application can improve performance (comparing to Spring Data Redis). Vinoth shows how to use Redis build-in features to improve application functionality (in a couple of lines of code we made PriorityQueue, using GeoSpatial is Awesome - we made practical application with Google Maps API). Chat application based on WebSockets, Redis and JavaScript is COOL to start working with WebSockets! Thanks a lot for this course! I am waiting for the next Reactive Course Series, especially Redis Stream and WebFlux Security!


Udemy ID


Course created date


Course Indexed date
Course Submitted by