Tipos de datos de Redis
Redis principalmente admite los siguientes tipos de datos:
- string (cadena):Unidad básica de almacenamiento de datos, puede almacenar cadenas, enteros o números de punto flotante.
- hash (hash):Un conjunto de pares clave-valor, puede almacenar múltiples campos.
- list (lista):Una lista simple, puede almacenar una serie de elementos de cadena.
- set (conjunto):Un conjunto desordenado, puede almacenar elementos de cadena no repetidos.
- zset (sorted set: conjunto ordenado):Similar a un conjunto, pero cada elemento tiene una puntuación (score) asociada.
- Bitmaps (mapas de bits):Basado en el tipo de cadena, puede operar sobre cada bit.
- HyperLogLogs (hiperlogaritmos):Se utiliza para la estadística de cardinalidad, puede estimar el número de elementos únicos en un conjunto.
- Geospatial (geoespacial):Se utiliza para almacenar información de ubicación geográfica.
- Publicar/Suscribir (Pub/Sub):Un patrón de comunicación de mensajes que permite a los clientes suscribirse a canales de mensajes y recibir mensajes publicados en ese canal.
- Streams (flujos):Se utiliza para colas de mensajes y almacenamiento de registros, admite persistencia de mensajes y ordenación por tiempo.
- Modules (módulos):Redis admite la carga dinámica de módulos, lo que permite ampliar las funciones de Redis.
String (cadena)
string es el tipo más básico de Redis; puedes entenderlo como un tipo idéntico a Memcached, donde una clave (key) corresponde a un valor (value).
El tipo string es binario seguro. Esto significa que el string de Redis puede contener cualquier dato, como imágenes jpg u objetos serializados.
El tipo string es el tipo de datos más básico de Redis; el valor de tipo string puede almacenar hasta 512 MB.
Comandos comunes
SET key value: Establece el valor de la clave.GET key: Obtiene el valor de la clave.INCR key: Incrementa el valor de la clave en 1.DECR key: Decrementa el valor de la clave en 1.APPEND key value: Añade el valor al final del valor de la clave.
Ejemplo
redis 127.0.0.1:6379> SET ejemplo "Ejemplo" OK redis 127.0.0.1:6379> GET ejemplo "Ejemplo"
En el ejemplo anterior usamos de Redis elSETyGETcomando. La clave es ejemplo, y el valor correspondiente esTutorial para novatos。
Nota:Una clave puede almacenar hasta 512 MB.
Hash (hash)
El hash de Redis es un conjunto de pares clave-valor (key=>value), similar a una pequeña base de datos NoSQL.
El hash de Redis es una tabla de mapeo de campos (field) y valores (value) de tipo string; el hash es especialmente adecuado para almacenar objetos.
Cada hash puede almacenar hasta 2^32 - 1 pares clave-valor.
HSET key field value: Establece el valor del campo en la tabla hash.HGET key field: Obtiene el valor del campo en la tabla hash.HGETALL key: Obtiene todos los campos y valores de la tabla hash.HDEL key field: Elimina uno o más campos de la tabla hash.
Comandos comunes
Ejemplo
DEL ejemploSe utiliza para eliminar la clave utilizada anteriormente en las pruebas; de lo contrario, se producirá un error:(error) WRONGTYPE Operation against a key holding the wrong kind of value

redis 127.0.0.1:6379> DEL ejemplo redis 127.0.0.1:6379> HMSET ejemplo field1 "Hello" field2 "World" "OK" redis 127.0.0.1:6379> HGET ejemplo field1 "Hello" redis 127.0.0.1:6379> HGET ejemplo field2 "World"
En el ejemplo usamos RedisHMSET, HGETcomando,HMSETestablecimos dosfield=>valuepares, HGET obtiene el correspondientefieldcorrespondientevalue。
List (lista)
La lista de Redis es una lista simple de cadenas, ordenada según el orden de inserción. Puedes agregar un elemento al principio (izquierda) o al final (derecha) de la lista.
La lista puede almacenar hasta 2^32 - 1 elementos.
Comandos comunes
LPUSH key value: Inserta el valor en el encabezado de la lista.RPUSH key value: Inserta el valor al final de la lista.LPOP key: Elimina y obtiene el primer elemento de la lista.RPOP key: Elimina y obtiene el último elemento de la lista.LRANGE key start stop: Obtiene los elementos de la lista dentro del rango especificado.
Ejemplo
redis 127.0.0.1:6379> DEL ejemplo redis 127.0.0.1:6379> lpush ejemplo redis (integer) 1 redis 127.0.0.1:6379> lpush ejemplo mongodb (integer) 2 redis 127.0.0.1:6379> lpush ejemplo rabbitmq (integer) 3 redis 127.0.0.1:6379> lrange ejemplo 0 10 1) "rabbitmq" 2) "mongodb" 3) "redis" redis 127.0.0.1:6379>
Set (conjunto)
El Set de Redis es un conjunto desordenado de tipo string.
El conjunto se implementa mediante una tabla hash, por lo que la complejidad de agregar, eliminar y buscar es O(1).
Comandos comunes
SADD key value: Agrega uno o más miembros al conjunto.SREM key value: Elimina uno o más miembros del conjunto.SMEMBERS key: Devuelve todos los miembros del conjunto.SISMEMBER key value: Determina si el valor es un miembro del conjunto.
Comando sadd
Agrega un elemento string al conjunto set correspondiente a la clave; devuelve 1 si tiene éxito y 0 si el elemento ya está en el conjunto.
sadd key member
Ejemplo
redis 127.0.0.1:6379> DEL ejemplo redis 127.0.0.1:6379> sadd ejemplo redis (integer) 1 redis 127.0.0.1:6379> sadd ejemplo mongodb (integer) 1 redis 127.0.0.1:6379> sadd ejemplo rabbitmq (integer) 1 redis 127.0.0.1:6379> sadd ejemplo rabbitmq (integer) 0 redis 127.0.0.1:6379> smembers ejemplo 1) "redis" 2) "rabbitmq" 3) "mongodb"
Nota:En el ejemplo anterior, rabbitmq se agregó dos veces, pero debido a la unicidad de los elementos en el conjunto, el segundo elemento insertado se ignorará.
El número máximo de miembros en el conjunto es 232- 1 (4294967295, cada conjunto puede almacenar más de 4 mil millones de miembros).
zset (sorted set: conjunto ordenado)
El zset de Redis, al igual que set, es un conjunto de elementos de tipo string y no permite miembros duplicados.La diferencia es que cada elemento está asociado a una puntuación de tipo double. Redis ordena los miembros del conjunto de menor a mayor precisamente mediante la puntuación.
Los miembros del zset son únicos, pero las puntuaciones (score) pueden repetirse.
Comandos comunes
ZADD key score value: Agrega uno o más miembros al conjunto ordenado, o actualiza la puntuación de los miembros existentes.ZRANGE key start stop [WITHSCORES]: Devuelve los miembros dentro del rango especificado.ZREM key value: Elimina uno o más miembros del conjunto ordenado.ZSCORE key value: Devuelve el valor de puntuación de los miembros en el conjunto ordenado.
Comando zadd
Agrega elementos al conjunto; si el elemento ya existe en el conjunto, actualiza su score correspondiente.
zadd key score member
Ejemplo
redis 127.0.0.1:6379> DEL ejemplo redis 127.0.0.1:6379> zadd ejemplo 0 redis (integer) 1 redis 127.0.0.1:6379> zadd ejemplo 0 mongodb (integer) 1 redis 127.0.0.1:6379> zadd ejemplo 0 rabbitmq (integer) 1 redis 127.0.0.1:6379> zadd ejemplo 0 rabbitmq (integer) 0 redis 127.0.0.1:6379> ZRANGEBYSCORE ejemplo 0 1000 1) "mongodb" 2) "rabbitmq" 3) "redis"
Otros tipos de datos avanzados
HyperLogLog
- Estructura de datos para algoritmos de estimación de cardinalidad.
- Se utiliza comúnmente para estimar valores aproximados de elementos únicos.
Bitmaps
- Arreglo de bits, puede realizar operaciones de bits en cadenas.
- Se utiliza comúnmente para implementar operaciones de bits como filtros de Bloom.
Geospatial Indexes
- Maneja datos geoespaciales, admite índices geoespaciales y consultas de radio.
- Tipo de datos de registro, admite datos de series temporales.
- Se utiliza para colas de mensajes y procesamiento de datos en tiempo real.