Operações em Listas no Redis

RedisBeginner
Pratique Agora

Introdução

Neste laboratório, você explorará as operações fundamentais de listas no Redis. Aprenderá a gerenciar e manipular dados de listas usando comandos como LTRIM, LINSERT, LPOP, RPOP e BLPOP.

Especificamente, você praticará o corte de listas para intervalos específicos com LTRIM, a inserção de elementos antes ou depois de elementos existentes usando LINSERT, a remoção de elementos do início e do fim das listas com LPOP e RPOP, respectivamente, e o bloqueio até que um elemento esteja disponível para remoção com BLPOP. Essas operações são essenciais para gerenciar eficientemente os dados armazenados em listas do Redis.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 96%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Cortar uma Lista com LTRIM

Nesta etapa, você aprenderá a cortar uma lista do Redis usando o comando LTRIM. LTRIM permite que você especifique um intervalo de elementos dentro de uma lista, removendo efetivamente todos os elementos fora desse intervalo. Isso é útil para gerenciar o tamanho da lista e focar em porções específicas de seus dados.

Primeiro, conecte-se ao servidor Redis usando o comando redis-cli no seu terminal:

redis-cli

Agora, vamos criar uma lista chamada mylist e preenchê-la com alguns valores. Execute o seguinte comando dentro do redis-cli:

RPUSH mylist "one" "two" "three" "four" "five"

Você deve ver a seguinte saída:

(integer) 5

Isso indica que cinco elementos foram adicionados à lista.

Agora, vamos usar LTRIM para manter apenas os elementos do índice 1 ao índice 3 (inclusive). Lembre-se que os índices de lista do Redis são baseados em zero. Execute o seguinte comando:

LTRIM mylist 1 3

A saída será:

OK

Isso significa que a operação LTRIM foi bem-sucedida.

Para verificar o resultado, vamos recuperar toda a lista usando LRANGE. Execute o seguinte comando:

LRANGE mylist 0 -1

Você deve ver a seguinte saída:

1) "two"
2) "three"
3) "four"

Como você pode ver, apenas os elementos nos índices 1, 2 e 3 ("two", "three" e "four") permanecem na lista. Os elementos "one" e "five" foram removidos.

Finalmente, saia do redis-cli digitando exit e pressionando Enter. Isso garante que seus comandos sejam registrados.

exit

LTRIM é uma ferramenta poderosa para gerenciar o tamanho e o conteúdo de suas listas do Redis. Ao especificar o intervalo desejado, você pode remover eficientemente elementos indesejados e focar nos dados que são mais importantes.

Inserir Elementos com LINSERT

Nesta etapa, você aprenderá a inserir elementos em uma lista do Redis usando o comando LINSERT. LINSERT permite que você insira um novo elemento antes ou depois de um elemento existente na lista. Isso é útil para manter a ordem dos elementos e adicionar novos itens em posições específicas.

Continuando da etapa anterior, devemos ter uma lista chamada mylist com os seguintes elementos: "two", "three" e "four".

Conecte-se ao servidor Redis usando o comando redis-cli:

redis-cli

Agora, vamos inserir o elemento "one" antes do elemento "two" na lista. Usamos a opção BEFORE com LINSERT. Execute o seguinte comando:

LINSERT mylist BEFORE "two" "one"

Você deve ver a seguinte saída:

(integer) 4

Isso indica que a lista agora tem 4 elementos.

Para verificar o resultado, vamos recuperar toda a lista usando LRANGE. Execute o seguinte comando:

LRANGE mylist 0 -1

Você deve ver a seguinte saída:

1) "one"
2) "two"
3) "three"
4) "four"

Como você pode ver, o elemento "one" foi inserido antes de "two".

Em seguida, vamos inserir o elemento "five" depois do elemento "four" na lista. Usamos a opção AFTER com LINSERT. Execute o seguinte comando:

LINSERT mylist AFTER "four" "five"

A saída será:

(integer) 5

Isso significa que a operação LINSERT foi bem-sucedida e a lista agora tem 5 elementos.

Vamos recuperar toda a lista novamente usando LRANGE. Execute o seguinte comando:

LRANGE mylist 0 -1

Você deve ver a seguinte saída:

1) "one"
2) "two"
3) "three"
4) "four"
5) "five"

Como você pode ver, o elemento "five" foi inserido depois de "four".

Finalmente, saia do redis-cli digitando exit e pressionando Enter. Isso garante que seus comandos sejam registrados.

exit

LINSERT fornece controle preciso sobre onde novos elementos são adicionados às suas listas do Redis, permitindo que você mantenha a ordem e a estrutura desejadas de seus dados.

Remover Elementos com LPOP e RPOP

Nesta etapa, você aprenderá a remover e recuperar elementos de uma lista do Redis usando os comandos LPOP e RPOP. LPOP remove e retorna o primeiro elemento (mais à esquerda) da lista, enquanto RPOP remove e retorna o último elemento (mais à direita) da lista. Esses comandos são úteis para implementar um comportamento semelhante a filas ou pilhas com listas do Redis.

Continuando da etapa anterior, devemos ter uma lista chamada mylist com os seguintes elementos: "one", "two", "three", "four" e "five".

Conecte-se ao servidor Redis usando o comando redis-cli:

redis-cli

Agora, vamos usar LPOP para remover e recuperar o primeiro elemento da lista. Execute o seguinte comando:

LPOP mylist

Você deve ver a seguinte saída:

"one"

Isso indica que o elemento "one" foi removido da lista e retornado.

Para verificar o resultado, vamos recuperar os elementos restantes usando LRANGE. Execute o seguinte comando:

LRANGE mylist 0 -1

Você deve ver a seguinte saída:

1) "two"
2) "three"
3) "four"
4) "five"

Como você pode ver, o elemento "one" não está mais na lista.

Em seguida, vamos usar RPOP para remover e recuperar o último elemento da lista. Execute o seguinte comando:

RPOP mylist

A saída será:

"five"

Isso significa que o elemento "five" foi removido da lista e retornado.

Vamos recuperar os elementos restantes novamente usando LRANGE. Execute o seguinte comando:

LRANGE mylist 0 -1

Você deve ver a seguinte saída:

1) "two"
2) "three"
3) "four"

Como você pode ver, o elemento "five" não está mais na lista.

Finalmente, exclua a lista mylist e saia do redis-cli digitando exit e pressionando Enter. Isso garante que seus comandos sejam registrados.

DEL mylist
exit

LPOP e RPOP são comandos fundamentais para gerenciar listas do Redis como filas ou pilhas. Eles fornecem uma maneira simples e eficiente de remover e recuperar elementos de qualquer extremidade da lista.

Bloquear e Remover com BLPOP

Nesta etapa, você aprenderá a usar o comando BLPOP, que é uma versão bloqueante de LPOP. BLPOP permite que um cliente espere (bloqueie) até que um elemento esteja disponível em uma lista antes de tentar removê-lo. Isso é particularmente útil para construir filas de mensagens ou filas de tarefas confiáveis, onde os consumidores precisam esperar que novos itens sejam adicionados.

Para esta etapa, você precisará abrir duas janelas de terminal. Em ambos os terminais, conecte-se ao servidor Redis usando o comando redis-cli:

redis-cli

Mantenha o primeiro terminal conectado ao Redis. No segundo terminal, executaremos o comando de remoção bloqueante.

Primeiro, certifique-se de que a lista mylist foi excluída nas etapas anteriores. Caso contrário, execute o seguinte comando:

DEL mylist

No segundo terminal, execute o seguinte comando:

BLPOP mylist 100

Este comando bloqueará por um máximo de 100 segundos, esperando que um elemento se torne disponível na lista mylist. Se nenhum elemento for adicionado em 100 segundos, o comando expirará e retornará nil.

Agora, volte para o primeiro terminal. Vamos adicionar um elemento à lista mylist. Execute o seguinte comando:

RPUSH mylist "hello"

Imediatamente após executar o comando RPUSH no primeiro terminal, você deve ver o comando BLPOP no segundo terminal retornar com a seguinte saída:

1) "mylist"
2) "hello"
BLPOP command output

Isso indica que o comando BLPOP removeu com sucesso o elemento "hello" da lista mylist. O primeiro elemento da matriz retornada é a chave da lista, e o segundo elemento é o valor que foi removido.

Se você não adicionou o elemento rápido o suficiente, o comando BLPOP no segundo terminal pode ter expirado e retornado nil. Se isso acontecer, basta executar novamente o comando BLPOP no segundo terminal e, em seguida, adicionar rapidamente um elemento à lista no primeiro terminal.

Agora, vamos tentar BLPOP com várias listas. No segundo terminal, execute o seguinte comando:

BLPOP mylist anotherlist 100

Este comando bloqueará, esperando que um elemento se torne disponível em mylist ou anotherlist.

Volte para o primeiro terminal e adicione um elemento a anotherlist. Execute o seguinte comando:

RPUSH anotherlist "world"

Você deve ver o comando BLPOP no segundo terminal retornar com a seguinte saída:

1) "anotherlist"
2) "world"
BLPOP command output

Isso demonstra que BLPOP pode esperar por elementos em várias listas e retorna a lista da qual o elemento foi removido.

Finalmente, saia do redis-cli em ambos os terminais digitando exit e pressionando Enter. Isso garante que seus comandos sejam registrados.

exit

BLPOP é um comando crucial para construir aplicativos robustos e escaláveis que dependem de comunicação assíncrona e processamento de tarefas. Ele permite que os consumidores esperem eficientemente por novos dados sem constantemente consultar o servidor Redis.

Resumo

Neste laboratório, você explorou as operações fundamentais de listas do Redis. Você aprendeu a gerenciar e manipular dados de listas usando comandos como LTRIM, LINSERT, LPOP, RPOP e BLPOP.

Você praticou o corte de listas para intervalos específicos com LTRIM, a inserção de elementos antes ou depois de elementos existentes usando LINSERT, a remoção de elementos do início e do fim das listas com LPOP e RPOP, respectivamente, e o bloqueio até que um elemento esteja disponível para remoção com BLPOP. Essas operações são essenciais para gerenciar eficientemente os dados armazenados em listas do Redis.