Diseñado pensando en los desarrolladores y a diferencia de los almacenes de datos clave-valor simplistas, las estructuras de datos de Redis ofrecen formas flexibles de modelar sus datos para muchos casos prácticos en aplicaciones modernas. Estas sofisticadas estructuras de datos te permiten desarrollar aplicaciones con menos líneas de código elegante para almacenar, acceder y utilizar tus datos y permiten un procesamiento potente y rápido en memoria.
Estas estructuras de datos evitan la sobrecarga asociada a la traducción entre objetos de la aplicación a entidades de la base de datos para cada operación de la base de datos.
Redis ofrece Strings, Hashes, Lists, Sets, Sorted Sets, Bitmaps, Bitfields, HyperLogLog, Geospatial indexes, y Streams como estructuras de datos nativas. Con cada estructura de datos, Redis mantiene comandos exclusivos para permitir la ejecución de operaciones de varios tipos de manera eficaz.
Uno de los bloques de construcción más versátiles de Redis, Redis Strings, es una estructura de datos binaria segura. Puede almacenar cualquier tipo de datos: una cadena, un entero, un valor de punto flotante, una imagen JPEG, un objeto Ruby serializado o cualquier otra cosa que desee que tenga. Operar sobre una cadena completa o partes, e incrementar o decrementar números enteros y flotantes.
La estructura de datos Redis Sets almacena un conjunto único de miembros. Con los conjuntos, puede añadir, recuperar o eliminar miembros, comprobar la pertenencia o recuperar un miembro al azar. También puedes realizar operaciones con conjuntos, como la intersección, la unión y la diferencia de conjuntos, y calcular la cardinalidad de los conjuntos.
Los Redis Sorted Sets contienen un conjunto único de miembros ordenados por puntuaciones de punto flotante. Al igual que con los conjuntos, puede añadir, recuperar o eliminar miembros individuales y realizar operaciones de conjunto como la unión, la intersección, la diferencia de conjuntos y calcular la cardinalidad. Además, también puede consultar el conjunto basándote en la puntuación o el valor del miembro, agregar, filtrar y ordenar los resultados.
Las Redis Lists contienen colecciones de elementos de cadena ordenados según su orden de inserción. Empuja o saca elementos de ambos extremos, recorte en función de los desplazamientos, lea elementos individuales o múltiples, o busque o elimine elementos por valor y posición. También se pueden realizar llamadas de bloqueo para las transferencias asíncronas de mensajes.
De forma similar a los documentos en un almacén de documentos o a las filas en una base de datos relacional, la estructura de Redis Hashes almacena un conjunto de pares campo-valor. Ofrece la posibilidad de añadir, recuperar o eliminar elementos individuales y recuperar todo el hash, o utilizar uno o varios campos del hash como contador.
Redis Bitmaps es una estructura de datos compacta para almacenar lógica y estados binarios. Ofrece comandos para obtener y establecer un valor de bit en una posición determinada, y realizar operaciones Y, O, XORy NO entre múltiples claves de mapa de bits.
Los Bitfields ofrecen una forma eficiente y compacta de implementar múltiples contadores en una sola matriz. Permite incrementar y decrementar los contadores en una posición determinada, y marca el desbordamiento cuando el contador alcanza su límite superior.
Redis HyperLogLog es una estructura de datos probabilística que se usa para contar valores únicos (cardinalidad del conjunto) con un tamaño de memoria constante. Puede añadir y contar un gran número de elementos únicos con eficiencia de memoria, y fusionar dos o más estructuras de datos de HyperLogLog en una sola.
Los Geospatial Indexes proporcionan una forma extremadamente eficiente y sencilla de gestionar y utilizar los datos geoespaciales en Redis. Puedes añadir elementos únicos con latitud y longitud, calcular la distancia entre objetos y encontrar miembros dentro de un rango de radio determinado desde una ubicación.
Redis Streams es una estructura de datos increíblemente potente para gestionar flujos de datos de alta velocidad (como una cola de mensajes). Con la partición, replicación y persistencia listas para usar, puede capturar y procesar millones de datos por segundo con una latencia inferior a un milisegundo. Redis Streams se basa en una eficiente implementación de árbol radix, que hace que las consultas de rango y búsqueda sean extremadamente rápidas. Conecta a productores y consumidores con llamadas asíncronas y admite grupos de consumidores.