Introdução às Estruturas de Dados do Redis

RedisBeginner
Pratique Agora

Introdução

Neste laboratório, você explorará as estruturas de dados fundamentais do Redis e como interagir com elas usando a ferramenta de linha de comando redis-cli. O laboratório se concentra em exercícios práticos para ajudá-lo a entender como armazenar e recuperar dados no Redis.

Você começará trabalhando com Strings (Cadeias de Caracteres), aprendendo como definir, obter, verificar a existência e excluir valores de string. Em seguida, você passará para Lists (Listas), usando comandos como LPUSH e LRANGE. Depois, você gerenciará Sets (Conjuntos) com SADD e SMEMBERS. Finalmente, você explorará Hashes (Hashes) usando HSET e HGET. Essa experiência prática fornecerá uma base sólida para usar o Redis em várias aplicações.

Trabalhando com Strings para Dados Simples

Nesta etapa, exploraremos como usar o Redis para armazenar e recuperar dados de string simples. O Redis é frequentemente usado como um cache ou um armazenamento simples de chave-valor, e as strings são o tipo de dado mais básico que ele oferece.

Primeiro, vamos conectar ao servidor Redis usando a ferramenta de linha de comando redis-cli. Abra um terminal na VM do LabEx. Você já deve estar no diretório ~/project.

Digite o seguinte comando para conectar ao servidor Redis:

redis-cli

Você deve ver um prompt que se parece com isto:

127.0.0.1:6379>

Isso indica que você está agora conectado ao servidor Redis.

Agora, vamos definir um valor de string simples. Usaremos o comando SET. O comando SET recebe dois argumentos: a chave e o valor. Vamos definir uma chave chamada mykey com o valor Hello Redis:

SET mykey "Hello Redis"

Você deve ver a seguinte saída:

OK

Isso significa que o valor foi definido com sucesso.

Agora, vamos recuperar o valor usando o comando GET. O comando GET recebe um argumento: a chave. Vamos recuperar o valor de mykey:

GET mykey

Você deve ver a seguinte saída:

"Hello Redis"

Isso confirma que armazenamos e recuperamos com sucesso um valor de string no Redis.

Vamos tentar outro exemplo. Desta vez, vamos armazenar um número como uma string.

SET counter 100
GET counter

Você deve ver:

"100"

O Redis trata isso como uma string, embora represente um número.

Você também pode usar o comando EXISTS para verificar se uma chave existe.

EXISTS mykey

Você deve ver:

(integer) 1

Isso indica que a chave mykey existe. Se a chave não existir, o comando retornará (integer) 0.

Finalmente, vamos excluir a chave usando o comando DEL.

DEL mykey

Você deve ver:

(integer) 1

Isso indica que a chave mykey foi excluída com sucesso.

Agora, se você tentar obter o valor de mykey novamente:

GET mykey

Você deve ver:

(nil)

Isso confirma que a chave foi excluída.

Lembre-se de sair do redis-cli para garantir que seus comandos sejam registrados. Digite:

exit

Isso o retornará ao prompt de terminal normal.

Usando Listas com LPUSH e LRANGE

Nesta etapa, exploraremos como usar listas do Redis para armazenar e recuperar coleções ordenadas de dados. As listas do Redis são implementadas como listas encadeadas, o que as torna eficientes para adicionar e remover elementos do início ou do fim da lista. Focaremos nos comandos LPUSH e LRANGE.

Continuaremos usando a ferramenta de linha de comando redis-cli. Se você ainda não estiver conectado, abra um terminal na VM do LabEx e digite:

redis-cli

Agora, vamos criar uma lista e adicionar alguns elementos a ela usando o comando LPUSH. LPUSH adiciona elementos à esquerda (cabeça) da lista. O comando LPUSH recebe dois ou mais argumentos: a chave da lista e o(s) valor(es) a serem adicionados. Vamos criar uma lista chamada mylist e adicionar os valores item1, item2 e item3:

LPUSH mylist item1

Você deve ver a seguinte saída:

(integer) 1

Isso significa que um elemento foi adicionado à lista. O valor de retorno de LPUSH é o comprimento da lista após a operação.

Agora, vamos adicionar os outros itens:

LPUSH mylist item2
(integer) 2
LPUSH mylist item3
(integer) 3

Agora, vamos recuperar os elementos da lista usando o comando LRANGE. LRANGE retorna um intervalo de elementos da lista. O comando LRANGE recebe três argumentos: a chave da lista, o índice inicial e o índice final. Os índices são baseados em zero, então o primeiro elemento está no índice 0. Para recuperar todos os elementos da lista, podemos usar o índice inicial 0 e o índice final -1.

LRANGE mylist 0 -1

Você deve ver a seguinte saída:

1) "item3"
2) "item2"
3) "item1"

Observe que os elementos são retornados na ordem inversa em que os adicionamos, porque LPUSH adiciona elementos ao início da lista.

Vamos adicionar mais alguns itens à lista:

LPUSH mylist item4
LPUSH mylist item5

Agora, vamos recuperar os primeiros 3 elementos da lista (índices 0 a 2):

LRANGE mylist 0 2

Você deve ver:

1) "item5"
2) "item4"
3) "item3"

Você também pode usar índices negativos para acessar elementos do final da lista. Por exemplo, para recuperar o último elemento da lista, você pode usar o índice -1:

LRANGE mylist -1 -1

Você deve ver:

1) "item1"

Lembre-se de sair do redis-cli para garantir que seus comandos sejam registrados. Digite:

exit

Isso o retornará ao prompt de terminal normal.

Gerenciando Sets com SADD e SMEMBERS

Nesta etapa, exploraremos como usar conjuntos do Redis para armazenar e gerenciar coleções não ordenadas de elementos únicos. Os conjuntos do Redis são úteis para tarefas como rastrear visitantes únicos, armazenar tags ou gerenciar relacionamentos entre objetos. Focaremos nos comandos SADD e SMEMBERS.

Continuaremos usando a ferramenta de linha de comando redis-cli. Se você ainda não estiver conectado, abra um terminal na VM do LabEx e digite:

redis-cli

Agora, vamos criar um conjunto e adicionar alguns membros a ele usando o comando SADD. SADD adiciona um ou mais membros a um conjunto. O comando SADD recebe dois ou mais argumentos: a chave do conjunto e o(s) membro(s) a serem adicionados. Vamos criar um conjunto chamado myset e adicionar os membros member1, member2 e member3:

SADD myset member1

Você deve ver a seguinte saída:

(integer) 1

Isso significa que um membro foi adicionado ao conjunto. O valor de retorno de SADD é o número de membros que foram adicionados ao conjunto (excluindo membros que já estavam presentes).

Agora, vamos adicionar os outros itens:

SADD myset member2
(integer) 1
SADD myset member3
(integer) 1

Agora, vamos recuperar os membros do conjunto usando o comando SMEMBERS. SMEMBERS retorna todos os membros do conjunto. O comando SMEMBERS recebe um argumento: a chave do conjunto.

SMEMBERS myset

Você deve ver a seguinte saída (a ordem dos membros pode variar, pois os conjuntos são não ordenados):

1) "member3"
2) "member2"
3) "member1"

Vamos tentar adicionar um membro duplicado ao conjunto:

SADD myset member1

Você deve ver:

(integer) 0

Isso indica que nenhum novo membro foi adicionado, porque member1 já estava no conjunto.

Vamos adicionar mais alguns membros ao conjunto:

SADD myset member4
SADD myset member5

Agora, vamos recuperar todos os membros novamente:

SMEMBERS myset

Você deve ver algo como:

1) "member5"
2) "member4"
3) "member3"
4) "member2"
5) "member1"

A ordem pode ser diferente.

Lembre-se de sair do redis-cli para garantir que seus comandos sejam registrados. Digite:

exit

Isso o retornará ao prompt de terminal normal.

Explorando Hashes com HSET e HGET

Nesta etapa, exploraremos como usar hashes do Redis para armazenar e recuperar coleções de pares campo-valor. Os hashes do Redis são úteis para representar objetos com múltiplos atributos. Focaremos nos comandos HSET e HGET.

Continuaremos usando a ferramenta de linha de comando redis-cli. Se você ainda não estiver conectado, abra um terminal na VM do LabEx e digite:

redis-cli

Agora, vamos criar um hash e adicionar alguns campos e valores a ele usando o comando HSET. HSET define o valor de um campo em um hash. O comando HSET recebe três argumentos: a chave do hash, o campo e o valor. Vamos criar um hash chamado myhash e definir o campo field1 para o valor value1:

HSET myhash field1 value1

Você deve ver a seguinte saída:

(integer) 1

Isso significa que um novo campo foi adicionado ao hash. O valor de retorno de HSET é 1 se o campo é novo no hash e 0 se o campo já existe e o valor foi atualizado.

Agora, vamos adicionar outro campo:

HSET myhash field2 value2
(integer) 1

Agora, vamos recuperar o valor de um campo usando o comando HGET. HGET obtém o valor de um campo em um hash. O comando HGET recebe dois argumentos: a chave do hash e o campo. Vamos recuperar o valor de field1 em myhash:

HGET myhash field1

Você deve ver a seguinte saída:

"value1"

Isso confirma que armazenamos e recuperamos com sucesso um par campo-valor no hash.

Vamos tentar atualizar o valor de um campo existente:

HSET myhash field1 newvalue1

Você deve ver:

(integer) 0

Isso indica que o campo já existia e seu valor foi atualizado.

Agora, vamos recuperar o valor de field1 novamente:

HGET myhash field1

Você deve ver:

"newvalue1"

Isso confirma que o valor foi atualizado.

Vamos adicionar mais alguns campos ao hash:

HSET myhash field3 value3
HSET myhash field4 value4

Lembre-se de sair do redis-cli para garantir que seus comandos sejam registrados. Digite:

exit

Isso o retornará ao prompt de terminal normal.

Resumo

Neste laboratório, exploramos as estruturas de dados fundamentais do Redis, começando com strings. Aprendemos como conectar a um servidor Redis usando redis-cli e, em seguida, usamos o comando SET para armazenar valores de string associados a chaves. Em seguida, recuperamos esses valores usando o comando GET. Também vimos como o Redis trata números armazenados como strings.

Além disso, aprendemos a criar e manipular Listas usando LPUSH e LRANGE, gerenciar Conjuntos com SADD e SMEMBERS e explorar Hashes usando HSET e HGET. Esses comandos permitem que você armazene e recupere diferentes tipos de dados no Redis, tornando-o uma ferramenta versátil para várias aplicações. Lembre-se de sair do redis-cli após cada etapa para garantir que seus comandos sejam registrados para verificação.