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 foca em exercícios práticos para ajudá-lo a entender como armazenar e recuperar dados no Redis.
Você começará trabalhando com Strings, aprendendo a definir, obter, verificar a existência e excluir valores de string. Em seguida, passará para as Lists (listas), usando comandos como LPUSH e LRANGE. Depois, gerenciará Sets (conjuntos) com SADD e SMEMBERS. Por fim, explorará Hashes usando HSET e HGET. Essa experiência prática fornecerá uma base sólida para usar o Redis em diversas aplicações.
Trabalhando com Strings para Dados Simples
Nesta etapa, exploraremos como usar o Redis para armazenar e recuperar dados simples do tipo string. O Redis é frequentemente usado como cache ou como um armazenamento simples de chave-valor, e as strings são o tipo de dado mais básico que ele oferece.
Primeiro, vamos nos 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 se conectar ao servidor Redis:
redis-cli
Você deverá ver um prompt como este:
127.0.0.1:6379>
Isso indica que você está 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ê deverá 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ê deverá 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ê deverá ver:
"100"
O Redis trata isso como uma string, mesmo que represente um número.
Você também pode usar o comando EXISTS para verificar se uma chave existe.
EXISTS mykey
Você deverá ver:
(integer) 1
Isso indica que a chave mykey existe. Se a chave não existir, o comando retornará (integer) 0.
Por fim, vamos excluir a chave usando o comando DEL.
DEL mykey
Você deverá 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ê deverá 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 retornará você ao prompt normal do terminal.
Usando Lists com LPUSH e LRANGE
Nesta etapa, exploraremos como usar as Lists 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. O LPUSH adiciona elementos à esquerda (início) 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ê deverá ver a seguinte saída:
(integer) 1
Isso significa que um elemento foi adicionado à lista. O valor de retorno do LPUSH é o tamanho 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. O 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, portanto, 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ê deverá 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 o LPUSH adiciona elementos ao início da lista.
Vamos adicionar mais alguns itens à lista:
LPUSH mylist item4
LPUSH mylist item5
Agora, vamos recuperar os 3 primeiros elementos da lista (índices 0 a 2):
LRANGE mylist 0 2
Você deverá ver:
1) "item5"
2) "item4"
3) "item3"
Você também pode usar índices negativos para acessar elementos a partir do final da lista. Por exemplo, para recuperar o último elemento da lista, você pode usar o índice -1:
LRANGE mylist -1 -1
Você deverá ver:
1) "item1"
Lembre-se de sair do redis-cli para garantir que seus comandos sejam registrados. Digite:
exit
Isso retornará você ao prompt normal do terminal.
Gerenciando Sets com SADD e SMEMBERS
Nesta etapa, exploraremos como usar os Sets do Redis para armazenar e gerenciar coleções não ordenadas de elementos únicos. Os Sets 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. O 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ê deverá ver a seguinte saída:
(integer) 1
Isso significa que um membro foi adicionado ao conjunto. O valor de retorno do 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. O SMEMBERS retorna todos os membros do conjunto. O comando SMEMBERS recebe um argumento: a chave do conjunto.
SMEMBERS myset
Você deverá ver a seguinte saída (a ordem dos membros pode variar, pois os conjuntos não são ordenados):
1) "member3"
2) "member2"
3) "member1"
Vamos tentar adicionar um membro duplicado ao conjunto:
SADD myset member1
Você deverá 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ê deverá 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 retornará você ao prompt normal do terminal.
Explorando Hashes com HSET e HGET
Nesta etapa, exploraremos como usar os 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. O 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 com o valor value1:
HSET myhash field1 value1
Você deverá ver a seguinte saída:
(integer) 1
Isso significa que um novo campo foi adicionado ao hash. O valor de retorno do HSET é 1 se o campo for novo no hash e 0 se o campo já existir e o valor tiver sido atualizado.
Agora, vamos adicionar outro campo:
HSET myhash field2 value2
(integer) 1
Agora, vamos recuperar o valor de um campo usando o comando HGET. O 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ê deverá 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ê deverá 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ê deverá 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 retornará você ao prompt normal do terminal.
Resumo
Neste laboratório, exploramos as estruturas de dados fundamentais do Redis, começando pelas strings. Aprendemos como nos conectar a um servidor Redis usando o redis-cli e, em seguida, usamos o comando SET para armazenar valores de string associados a chaves. Depois, 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 Lists usando LPUSH e LRANGE, gerenciar Sets com SADD e SMEMBERS, e explorar Hashes usando HSET e HGET. Esses comandos permitem armazenar e recuperar diferentes tipos de dados no Redis, tornando-o uma ferramenta versátil para diversas aplicações. Lembre-se de sair do redis-cli após cada etapa para garantir que seus comandos sejam registrados para verificação.


