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

Tipos de Dados do Redis

O Redis suporta cinco tipos de dados: string (texto), hash (hash), list (lista), set (conjunto) e zset (conjunto ordenado: conjunto ordenado).

String (texto)

A string é o tipo mais básico do Redis, você pode entender como o tipo de Memcached, um key corresponde a um value.

O tipo string é binário seguro. Isso significa que o string do redis pode conter qualquer tipo de dados. Por exemplo, imagens jpg ou objetos serializados.

O tipo string é o tipo de dados mais básico do Redis, o valor do tipo string pode armazenar até 512MB.

Exemplo Online

redis 127.0.0.1:6379> SET w3codebox "site de tutoriais básicos"
OK
redis 127.0.0.1:6379> GET w3codebox
"site de tutoriais básicos"

No exemplo acima, usamos o Redis SET e GET comando. A chave é w3codebox, o valor correspondente é site de tutoriais básicos.

Atenção:Um chave pode armazenar até 512MB.

Hash (hash)

O hash do Redis é um conjunto de pares chave-valor (key=>value).

O hash do Redis é uma tabela de mapeamento de field e value do tipo string, o hash é especialmente adequado para armazenar objetos.

Exemplo Online

DEL w3codebox é usado para deletar o key testado anteriormente, senão será emitido um erro:(error) TYPE ERR Operation against a key holding the wrong kind of value

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> HMSET w3field codebox1 "Hello" field2 "World"
"OK"
redis 127.0.0.1:6379> HGET w3field codebox1
"Hello"
redis 127.0.0.1:6379> HGET w3field codebox2
"World"

No exemplo, usamos o Redis HMSET, HGET ,comando HMSET Foram definidos dois pares field=>value, HGET obtém o correspondente field correspondente a value.

Cada hash pode armazenar 232 -1 par de chave-valor (40 a mais de um bilhão).

List (lista)

A lista do Redis é uma lista de strings simples, ordenada pela ordem de inserção. Você pode adicionar um elemento ao início (esquerda) ou ao final (direita) da lista.

Exemplo Online

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

A lista pode armazenar no máximo  232 - 1 elemento (4294967295, cada lista pode armazenar40 a mais de um bilhão).

Set (conjunto)

O Set do Redis é um conjunto não ordenado de tipos string.

O conjunto é implementado por meio de uma tabela de hashing, portanto, a complexidade de adição, exclusão e busca é O(1)。

comando sadd

Adiciona um elemento string ao conjunto correspondente à chave, retorna 1 em caso de sucesso 1retorna 0 se o elemento já estiver no conjunto.

sadd membro chave

Exemplo Online

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

Atenção:No exemplo acima, o rabbitmq foi adicionado duas vezes, mas devido à unicidade dos elementos dentro do conjunto, a inserção segunda vez será ignorada.

O número máximo de membros no conjunto é  232  - 1(4294967295, cada conjunto pode armazenar4(0 a 1 bilhão de membros).

Zset (conjunto ordenado: sorted set)

O zset do Redis é igual ao set e é uma coleção de elementos do tipo string, não permitindo membros repetidos.

Diferente disso, cada elemento está associado a um score do tipo double. O Redis usa esses scores para ordenar os membros do conjunto de forma crescente.

Os membros do zset são únicos, mas os scores podem ser repetidos.

Comando ZADD

Adicionar elemento ao conjunto, se o elemento já existir, atualizar o score correspondente

ZADD key score member

Exemplo Online

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