Introducción
Redis es una solución de base de datos no relacional notablemente rápida. Su modelo de datos clave-valor simple permite a Redis manejar grandes conjuntos de datos mientras mantiene velocidades de lectura y escritura impresionantes y disponibilidad.
Redis le permite usar varios tipos de datos, como listas, hashes, conjuntos y conjuntos ordenados para almacenar y administrar datos.
En este tutorial, aprenda cómo Tipos de datos de Redis trabajar y dominar los comandos básicos para cada tipo de datos.
Tipos de datos Redis
Una base de datos de clave-valor estructura los datos aplicando una clave única a cada objeto de datos. Use la clave para administrar y recuperar los valores asignados a esa clave específica. Cualquier secuencia binaria de hasta 512 MB de tamaño se puede usar como clave Redis y luego asociarse con cadenas simples u otras estructuras de datos abstractas.
Las claves de Redis se asignan a valores mediante el uso de uno de los siete tipos de datos diferentes:
- Cuerdas
- Listas
- Hashes
- Conjuntos
- Conjuntos ordenados
- HyperLogRegistros
- Mapas de bits (cadenas de bits)
Cada tipo de datos de Redis tiene su propio conjunto de comandos para patrones de acceso de rutina, soporte de transacciones y operaciones masivas. Si no tiene instalado Redis, use nuestras guías detalladas para instalar Redis en Ubuntu o implementar Redis en Docker.
Cuerdas
Una cadena representa el valor más pequeño que puede adjuntar a una clave. El tamaño máximo permitido de un valor de cadena es de 512 MB y contiene cualquier secuencia de caracteres. En Redis, la parte clave del par clave-valor también es una cadena.
Las bases de datos que utilizan este tipo de estructura de datos a menudo se denominan almacenes de clave-valor de cadena a cadena.
Con todos los datos en un solo objeto, las operaciones de cadena en Redis son extremadamente rápidas. Comandos básicos de Redis como SET
, GET
y DEL
le permite realizar operaciones esenciales en el valor de la cadena.
SET key value
– Establece el valor para la clave especificada.GET key
– Recupera el valor de la clave especificada.DEL key
– Elimina el valor de la clave dada.
El siguiente ejemplo ilustra cómo usar estos comandos sencillos dentro de redis-cli concha interactiva. El SET
El comando agrega el valor a la clave mientras que GET
El comando obtiene y muestra el valor. Si no se asigna ningún valor a la clave, GET
la salida del comando es (nil)
.
Si existe un valor, la salida para DEL
El comando muestra el número de elementos que se eliminan. Agregar nuevas claves y valores no afecta el rendimiento de la base de datos ni las velocidades de procesamiento.
Listas
Redis le permite asociar una secuencia ordenada de cadenas a una tecla. Esta lista enlazada de cadenas le permite realizar un conjunto de operaciones como:
LPUSH
– Empuja el valor al extremo izquierdo de la lista.RPUSH
– Empuja el valor al final de la cola de la lista.LRANGE
– Recupera una variedad de artículos.LPOP/RPOP
– Se utiliza para mostrar y eliminar elementos de ambos extremos.LINDEX
– Obtener un valor de una posición específica dentro de la lista.
Al agregar valores a una lista con LPUSH/RPUSH
comandos, la salida proporciona el número actual de elementos. A continuación, puede obtener la lista completa mediante LRANGE
comando con 0
como inicio y -1
que significa el último elemento del índice.
Recupere un valor específico de la lista enlazada utilizando LINDEX
ordene o elimine elementos con LPOP/RPOP
comando.
Agregar valores a una lista vinculada es una operación eficiente que no afecta las velocidades de escritura, independientemente de su tamaño. Sin embargo, la lectura de datos de una lista vinculada puede depender de la cantidad de cadenas en el lado del valor del par clave-valor.
Hashes
Un hash de Redis almacena un mapeo desordenado de pares clave-valor. Una clave hash está asociada con un valor. El valor es una cadena Redis que contiene otros pares clave-valor. No puede usar otras estructuras de datos complejas, como conjuntos, listas u otros hashes como valores.
Los comandos hash básicos le permiten acceder y cambiar campos individuales o múltiples de forma independiente.
HSET
– Asigne un valor a una clave dentro del hash.HGET
– Recupera valores individuales asociados con una clave dentro del hash.HGETALL
– Muestra todo el contenido hash.HDEL
– Elimina un par clave-valor existente de un hash.
Cada vez que se agrega un elemento al hash con el HSET
comando, un valor de retorno (integer) n
le informa si ya existe una entrada y el número de instancias. Esta misma información se proporciona al usar el HDEL
comando.
Conjuntos
Un conjunto de Redis es una colección desordenada de cadenas únicas. Como los conjuntos no están ordenados, no puede eliminar elementos del frente o del final del índice como con las listas. Sin embargo, las cadenas son únicas y no existe la posibilidad de que aparezcan varias instancias del mismo elemento dentro de un conjunto.
Utilice los siguientes comandos para agregar, eliminar, recuperar e inspeccionar elementos individuales de un conjunto:
SADD
– Agregue uno o más elementos a un conjunto.SISMEMBER
– Averigüe si un artículo es parte de un conjunto.SMEMBERS
– Recupera todos los elementos de un conjunto.SREM
– Elimina un elemento existente de un conjunto.
Agregar el mismo elemento varias veces a un conjunto siempre produce una sola copia. Como resultado, no necesita usar el SMEMBERS
o SISMEMBER
comando para determinar si un elemento ya es miembro de un conjunto.
Usa el SADD
comando para asegurarse de que no haya entradas duplicadas dentro de un conjunto.
Conjuntos ordenados
Conjuntos ordenados o ZSET Los correos electrónicos son uno de los tipos de datos más avanzados en Redis.
La parte de valor de un par clave-valor de conjunto ordenado se compone de un elemento de cadena único (clave) llamado miembro , y un elemento (valor) se denomina puntuación . Los conjuntos ordenados asignan cada elemento a un valor de coma flotante (puntuación ) y use ese valor para clasificar los elementos en un orden específico.
Puede acceder a elementos en conjuntos ordenados por miembro, orden ordenado y por los valores de puntuación. Los comandos básicos le permiten obtener, agregar, eliminar valores individuales o recuperar elementos en función de los valores de los miembros y los rangos de puntuación.
ZADD
– Agrega un miembro con una puntuación al conjunto ordenado.ZRANGE
– Recupera elementos en función de su posición en el orden ordenado. Elwithscores
produce los valores de puntuación reales.ZRANGEBYSCORE
– Obtiene elementos del conjunto ordenado en función del rango de puntuación definido. Elwithscores
produce los valores de puntuación reales.ZREM
– Elimina elementos de un conjunto ordenado.
Solo el miembro el valor del par miembro-puntuación se trata como único. Si asocias dos puntuaciones diferentes al mismo miembro valor, solo la última adición estará presente en el conjunto ordenado. Si dos miembros diferentes tienen la misma puntuación, Redis ordena los valores alfanuméricamente.
HyperLogRegistros
HyperLogLogs proporciona un recuento estimado de elementos únicos en una colección. A diferencia de otras soluciones, los elementos de un HyperLogLogs no se cuentan individualmente, ya que eso requeriría realizar un seguimiento de los elementos anteriores para evitar contar el mismo elemento dos veces. Tal operación requiere una cantidad de memoria igual a la memoria utilizada para almacenar los datos.
La estructura HyperLogLog utiliza un algoritmo probabilístico mucho más eficiente que estima el tamaño de un conjunto en lugar de contar cada elemento. La tasa de error de la estimación es inferior al 1%.
Los comandos de HyperLogLog le permiten agregar elementos, recuperar un recuento estimado de elementos únicos y crear una unión de varios HyperLogLogs.
PFADD
– Agregar uno o varios elementos a un HyperLogLog.PFCOUNT
– Obtener un recuento estimado de elementos únicos de un único HyperLogLog.PFMERGE
– Combinar diferentes HyperLogLogs en un único HyperLogLog.
La precisión de los resultados puede variar según el tamaño de la colección. Sin embargo, si no necesita un conteo exacto de elementos, esta estructura probabilística le permite usar solo una fracción de la memoria que de otro modo necesitaría.
Mapas de bits
Una cadena Redis es una secuencia binaria con un tamaño máximo de 512 megabytes. Los mapas de bits le permiten manipular cadenas en el nivel de bits usando los comandos apropiados.
SETBIT
– El bit se define o borra en función de un valor 0 o 1.GETBIT
– Recupera el valor de bit para el valor de cadena especificado por una clave.BITOP
– Ejecutar operaciones bit a bit entre cadenas.BITPOS
– Localice el primer bit establecido en 1 o 0 en una cadena.BITCOUNT
– Cuente el número de bits establecidos en 1 en una cadena.
Ser capaz de manipular bits de una cadena brinda oportunidades excepcionales para ahorrar espacio. También proporciona un medio para acceder y trabajar en los elementos fundamentales de los datos directamente.