Book Image

Redis Stack for Application Modernization

By : Luigi Fugaro, Mirko Ortensi
1 (1)
Book Image

Redis Stack for Application Modernization

1 (1)
By: Luigi Fugaro, Mirko Ortensi

Overview of this book

In modern applications, efficiency in both operational and analytical aspects is paramount, demanding predictable performance across varied workloads. This book introduces you to Redis Stack, an extension of Redis and guides you through its broad data modeling capabilities. With practical examples of real-time queries and searches, you’ll explore Redis Stack’s new approach to providing a rich data modeling experience all within the same database server. You’ll learn how to model and search your data in the JSON and hash data types and work with features such as vector similarity search, which adds semantic search capabilities to your applications to search for similar texts, images, or audio files. The book also shows you how to use the probabilistic Bloom filters to efficiently resolve recurrent big data problems. As you uncover the strengths of Redis Stack as a data platform, you’ll explore use cases for managing database events and leveraging introduce stream processing features. Finally, you’ll see how Redis Stack seamlessly integrates into microservices architectures, completing the picture. By the end of this book, you’ll be equipped with best practices for administering and managing the server, ensuring scalability, high availability, data integrity, stored functions, and more.
Table of Contents (18 chapters)
1
Part 1: Introduction to Redis Stack
6
Part 2: Data Modeling
11
Part 3: From Development to Production

What this book covers

Chapter 1, Introducing Redis Stack, introduces you to Redis Stack, its differences with Redis, and why Redis can’t be considered as a caching system only, but a full-fledged database, augmenting and replacing relational databases in many use cases.

Chapter 2, Resolving Use Cases with Redis Stack, explores how Redis Stack extends Redis’s well-known capabilities thanks to its modular architecture, thus becoming a document store, a vector database, and a time series database. The probabilistic data types help to efficiently resolve many problems. Redis Stack is a modern real-time solution that can replace traditional relational databases in many use cases.

Chapter 3, Getting Started with Redis Stack, teaches you how Redis Stack can be installed in a variety of methods and on the most popular operative systems. This means that Redis Stack can be installed easily on Linux, macOS, and Windows systems using native installation packages (Linux tarballs are also available). Docker images are also available in Docker Hub. In addition, Redis Stack is available as a service with Redis Cloud.

Chapter 4, Setting Up Client Libraries, describes how the Redis Stack ecosystem provides a set of client libraries to ease developers’ lives. Those include libraries for the most used programming languages such as Python, Java, GoLang, C#, and JavaScript. In addition to client libraries, Redis provides a framework used for object mapping: Redis OM.

Chapter 5, Redis Stack as a Document Store, presents Redis Stack’s capability to perform real-time queries and searches against the hash and JSON types. From full-text to tagging, from aggregation to auto-completion, and the new vector search, Redis Stack can be used as a document store with advanced features.

Chapter 6, Redis Stack as a Vector Database, highlights why, among the advanced search features of Redis Stack, Vector Search stands as a core feature and deserves a chapter on its own. You will learn data modeling concepts and how to perform similarity searches for recommendation engines.

Chapter 7, Redis Stack as a Time Series Database, explains how Redis Stack, as a multi-model, real-time data structure server, can store data using data points for time series. Each data point can be enriched by adding metadata, known as labels. Each data point can have multiple labels that can be used for filtering, searching, querying, and aggregations using the built-in reducer functions.

Chapter 8, Understanding Probabilistic Data Structures, explores probabilistic data structures, which are a group of data structures that give a very reasonable approximation of an answer in just a fraction of the usual time and use very little memory. Questions such as “Has the user paid from this location already?”, “What are the 10 players with the highest score?”, or “How many unique users have played this song?” address the typical use cases for these data structures

Chapter 9, Programmability of Redis Stack, describes how, in addition to the traditional Redis Lua scripts and functions, Redis Stack includes a JavaScript serverless engine for transaction, batch, and event-driven data processing, allowing users to write and run their functions on data stored in Redis. With this capability, the database reacts to events occurring in the data while taking advantage of different Redis data structures and modules and promoting interoperability between them.

Chapter 10, RedisInsight – the Data Management GUI, covers RedisInsight, which is a graphical desktop manager that connects to Redis Stack databases and offers useful visualization tools for the different data models that can be stored.

Chapter 11, Using Redis Stack as a Primary Database, explains how Redis, as the leading real-time database, is used often as an in-memory cache, backed by a primary database. However, Redis Stack extends Redis with multi-model capabilities and is a good fit in many use cases to replace a traditional relational database. In this chapter, you will learn about the configuration to work with Redis Stack as the only primary database serving multi-model applications

Chapter 12, Managing Development and Production Environments, explains how moving from a development environment to deploying and running Redis at scale and monitoring the systems where the databases are running requires effort and the implementation of several maintenance duties. Redis Enterprise and Redis Cloud alleviate system and database administrators from their duties and can be managed using an intuitive UI.