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.