Book Image

Mastering Redis

By : Vidyasagar N V, Nelson
Book Image

Mastering Redis

By: Vidyasagar N V, Nelson

Overview of this book

Redis is the most popular, open-source, key value data structure server that provides a wide range of capabilities on which multiple platforms can be be built. Its fast and flexible data structures give your existing applications an edge in the development environment. This book is a practical guide which aims to help you deep dive into the world of Redis data structure to exploit its excellent features. We start our journey by understanding the need of Redis in brief, followed by an explanation of Advanced key management. Next, you will learn about design patterns, best practices for using Redis in DevOps environment and Docker containerization paradigm in detail. After this, you will understand the concept of scaling with Redis cluster and Redis Sentinel , followed by a through explanation of incorporating Redis with NoSQL technologies such as Elasticsearch and MongoDB. At the end of this section, you will be able to develop competent applications using these technologies. You will then explore the message queuing and task management features of Redis and will be able to implement them in your applications. Finally, you will learn how Redis can be used to build real-time data analytic dashboards, for different disparate data streams.
Table of Contents (13 chapters)
12
Index

Creating memory efficient Redis data structures

The following are some of the methods for memory optimization in Redis:

Small aggregate hashes, lists, sets, and sorted sets

For hashes, lists, and sorted sets, this special encoding is based on ziplist A Ziplist is described from ziplist.c as follows:

The ziplist is a specially encoded dually linked list that is designed to be very memory efficient. It stores both strings and integer values, where integers are encoded as actual integers instead of a series of characters. It allows push and pop operations on either side of the list in O(1) time. However, because every operation requires a reallocation of the memory used by the ziplist, the actual complexity is related to the amount of memory used by the ziplist.2.

Depending on the size, type, and contents of the data structure, the ziplist encoding offers significant memory savings for your Redis database. Redis dynamically switches between the ziplist and the default encoding for the data structure...