English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tipos de datos de Redis

Redis admite cinco tipos de datos: cadena (cadena), hash (hash), lista (lista), conjunto (conjunto) y zset (conjunto ordenado: conjunto ordenado).

Cadena (cadena)

La cadena es el tipo más básico de Redis, que puedes entender como exactamente igual al tipo de Memcached, donde un key corresponde a un value.

El tipo de cadena es seguro para binarios. Esto significa que las cadenas de Redis pueden contener cualquier tipo de datos. Por ejemplo, imágenes jpg o objetos serializados.

El tipo de cadena es el tipo de datos más básico de Redis, el valor del tipo de cadena puede almacenar hasta 512MB.

Ejemplo en línea

redis 127.0.0.1:6379> SET w3codebox "Sitio web de tutorial básico"
OK
redis 127.0.0.1:6379> GET w3codebox
"Sitio web de tutorial básico"

En el ejemplo anterior, hemos utilizado Redis SET y GET comando. La clave es w3codebox, el valor correspondiente es Sitio web de tutorial básico.

Nota:Una clave puede almacenar hasta 512MB.

Hash (Hash)

El hash de Redis es una colección de pares clave valor (key=>value).

El hash de Redis es una tabla de mapeo de tipo string de campo y valor, el hash es especialmente adecuado para almacenar objetos.

Ejemplo en línea

DEL w3codebox se utiliza para eliminar las claves utilizadas anteriormente en las pruebas, de lo contrario se producirá un error:(error) TIPO DE OPERACIÓN INCORRECTO Operación contra una clave que contiene un valor incorrecto

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> HMSET w3codebox campo1 "Hello" campo2 "World"
"OK"
redis 127.0.0.1:6379> HGET w3codebox campo1
"Hello"
redis 127.0.0.1:6379> HGET w3codebox campo2
"World"

En el ejemplo, hemos utilizado Redis HMSET, HGET ,comando HMSET Se han configurado dos pares campo=>valor, HGET para obtener el correspondiente campo correspondiente a valor.

Cada hash puede almacenar 232 -1 par clave-valor (4más de 0 mil millones).

Lista (List)

La lista de Redis es una lista de cadenas de caracteres simples, ordenada según el orden de inserción. Puede agregar un elemento al principio (izquierda) o al final (derecha) de la lista.

Ejemplo en línea

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> lpush w3codebox redis
(entero) 1
redis 127.0.0.1:6379> lpush w3codebox mongodb
(entero) 2
redis 127.0.0.1:6379> lpush w3codebox rabbitmq
(entero) 3
redis 127.0.0.1:6379> lrange w3codebox 0 10
1) "rabbitmq"
2) "mongodb"
3) "redis"
redis 127.0.0.1:6379>

La lista puede almacenar hasta  232 - 1 elemento (4294967295, cada lista puede almacenar4más de 0 mil millones).

Conjunto (Set)

El conjunto de Redis es un conjunto no ordenado de tipo string.

El conjunto se implementa mediante una tabla de散列, por lo que la complejidad de agregar, eliminar y buscar es O(1)。

comando sadd

Añade un elemento de tipo string al conjunto asociado con la clave, devuelve 1 si tiene éxito 1si el elemento ya está en el conjunto, devuelve 0.

miembro clave de la clave

Ejemplo en línea

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> SADD w3codebox redis
(entero) 1
redis 127.0.0.1:6379> SADD w3codebox mongodb
(entero) 1
redis 127.0.0.1:6379> SADD w3codebox rabbitmq
(entero) 1
redis 127.0.0.1:6379> SADD w3codebox rabbitmq
(entero) 0
redis 127.0.0.1:6379> SMEMBERS w3codebox
1) "redis"
2) "rabbitmq"
3) "mongodb"

Nota:En el ejemplo anterior, rabbitmq se agregó dos veces, pero según la unicidad de los elementos dentro del conjunto, el segundo elemento insertado se ignora.

El número máximo de miembros en el conjunto es  232  - 1(4294967295, cada conjunto puede almacenar4(0 más de mil millones de miembros).

Zset (conjunto ordenado: sorted set)

Redis zset y set son conjuntos de elementos de tipo string, y no permiten miembros repetidos.

La diferencia es que cada elemento se asocia con un número double. Redis escribe para ordenar los miembros del conjunto de menor a mayor por medio de las puntuaciones.

Los miembros del zset son únicos, pero las puntuaciones (score) pueden repetirse.

Comando ZADD

Añadir elementos al conjunto, si el elemento ya existe, actualizar el score correspondiente

ZADD key score member

Ejemplo en línea

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> ZADD w3codebox 0 redis
(entero) 1
redis 127.0.0.1:6379> ZADD w3codebox 0 mongodb
(entero) 1
redis 127.0.0.1:6379> ZADD w3codebox 0 rabbitmq
(entero) 1
redis 127.0.0.1:6379> ZADD w3codebox 0 rabbitmq
(entero) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE w3codebox 0 1000
1) "mongodb"
2) "rabbitmq"
3) "redis"