Gerenciamento Avançado de Chaves no Redis

RedisBeginner
Pratique Agora

Introdução

Neste laboratório, você explorará técnicas avançadas de gerenciamento de chaves no Redis. Começará aprendendo como renomear chaves usando o comando RENAME, conectando-se ao servidor Redis via redis-cli, definindo um par chave-valor e, em seguida, renomeando-o, verificando a alteração ao longo do processo.

Em seguida, você descobrirá como mover chaves entre diferentes bancos de dados Redis usando o comando MOVE. O laboratório irá guiá-lo através do processo de transferência de uma chave de um banco de dados para outro dentro da instância Redis. O laboratório também aborda a definição e recuperação de múltiplas chaves e a iteração eficiente de chaves.

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 90%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Renomear uma Chave com RENAME

Nesta etapa, você aprenderá como renomear uma chave no Redis usando o comando RENAME. Renomear chaves pode ser útil por várias razões, como corrigir erros de digitação, reorganizar seus dados ou atualizar nomes de chaves para refletir mudanças em sua aplicação.

Primeiro, vamos conectar ao servidor Redis usando a interface de linha de comando do Redis (redis-cli). Abra um terminal no seu diretório ~/project e digite o seguinte comando:

redis-cli

Você deve ver o prompt do Redis: 127.0.0.1:6379>.

Agora, vamos definir um par chave-valor que podemos renomear. Use o comando SET para criar uma chave chamada mykey com o valor myvalue:

SET mykey myvalue

Você deve ver a saída: OK.

Para verificar se a chave foi definida corretamente, use o comando GET:

GET mykey

Você deve ver a saída: "myvalue".

Agora, vamos renomear a chave mykey para newkey usando o comando RENAME:

RENAME mykey newkey

Você deve ver a saída: OK.

Para verificar se a chave foi renomeada, tente obter o valor da chave antiga (mykey):

GET mykey

Você deve ver a saída: (nil), o que significa que a chave não existe mais.

Agora, tente obter o valor da nova chave (newkey):

GET newkey

Você deve ver a saída: "myvalue", o que confirma que a chave foi renomeada com sucesso.

Finalmente, vamos renomear a chave newkey de volta para mykey para as próximas etapas:

RENAME newkey mykey

Você deve ver a saída: OK.

Verifique se a chave foi renomeada de volta:

GET mykey

Você deve ver a saída: "myvalue".

Lembre-se de sair do redis-cli digitando exit ou pressionando Ctrl+D. Isso garante que seus comandos sejam devidamente registrados.

exit

Você agora renomeou com sucesso uma chave no Redis usando o comando RENAME.

Mover uma Chave Entre Bancos de Dados com MOVE

Nesta etapa, você aprenderá como mover uma chave de um banco de dados Redis para outro usando o comando MOVE. O Redis suporta múltiplos bancos de dados lógicos dentro de uma única instância. Por padrão, existem 16 bancos de dados, numerados de 0 a 15. O comando MOVE permite que você transfira uma chave do banco de dados atualmente selecionado para outro.

Primeiro, certifique-se de estar conectado ao servidor Redis usando a interface de linha de comando do Redis (redis-cli). Abra um terminal no seu diretório ~/project e digite o seguinte comando:

redis-cli

Você deve ver o prompt do Redis: 127.0.0.1:6379>. Por padrão, você está conectado ao banco de dados 0.

Já temos uma chave chamada mykey com o valor myvalue no banco de dados 0 da etapa anterior. Vamos verificar isso:

GET mykey

Você deve ver a saída: "myvalue".

Agora, vamos mover a chave mykey do banco de dados 0 para o banco de dados 1 usando o comando MOVE:

MOVE mykey 1

Você deve ver a saída: (integer) 1, o que significa que a chave foi movida com sucesso.

Para verificar se a chave foi movida, tente obter o valor da chave mykey no banco de dados 0:

GET mykey

Você deve ver a saída: (nil), o que significa que a chave não existe mais no banco de dados 0.

Agora, mude para o banco de dados 1 usando o comando SELECT:

SELECT 1

Você deve ver a saída: OK.

Agora, tente obter o valor da chave mykey no banco de dados 1:

GET mykey

Você deve ver a saída: "myvalue", o que confirma que a chave foi movida com sucesso para o banco de dados 1.

Finalmente, vamos mover a chave mykey de volta para o banco de dados 0 para as próximas etapas. Primeiro, volte para o banco de dados 0:

SELECT 0

Você deve ver a saída: OK.

Agora, mova a chave mykey do banco de dados 1 para o banco de dados 0:

MOVE mykey 0

Você deve ver a saída: (error) ERR source and destination objects are the same.

Este erro ocorre porque você SELECT 0 e, em seguida, MOVE mykey 0 na mesma sessão. O comando MOVE não pode mover uma chave para o mesmo banco de dados em que ela está atualmente.

Para mover uma chave para um banco de dados diferente, você precisa selecionar o banco de dados de destino primeiro e, em seguida, usar o comando MOVE.

Por exemplo, primeiro selecione o banco de dados 1:

SELECT 1

Você deve ver a saída: OK.

Agora, mova a chave mykey do banco de dados 1 para o banco de dados 0:

MOVE mykey 0

Você deve ver a saída: (integer) 1, o que significa que a chave foi movida com sucesso.

Agora, volte para o banco de dados 0:

SELECT 0

Verifique se a chave está de volta no banco de dados 0:

GET mykey

Você deve ver a saída: "myvalue".

Lembre-se de sair do redis-cli digitando exit ou pressionando Ctrl+D. Isso garante que seus comandos sejam devidamente registrados.

exit

Você agora moveu com sucesso uma chave entre bancos de dados Redis usando o comando MOVE.

Definir Múltiplas Chaves com MSET

Nesta etapa, você aprenderá como definir múltiplas chaves com seus valores correspondentes em um único comando usando o comando MSET no Redis. Isso é mais eficiente do que usar múltiplos comandos SET, pois reduz o número de viagens de ida e volta para o servidor Redis.

Primeiro, certifique-se de estar conectado ao servidor Redis usando a interface de linha de comando do Redis (redis-cli). Se você ainda não estiver conectado, abra um terminal no seu diretório ~/project e digite o seguinte comando:

redis-cli

Você deve ver o prompt do Redis: 127.0.0.1:6379>.

Já temos uma chave chamada mykey com o valor myvalue no banco de dados 0 das etapas anteriores. Agora, vamos definir mais duas chaves, key1 e key2, com os valores value1 e value2, respectivamente, usando o comando MSET:

MSET key1 value1 key2 value2

Você deve ver a saída: OK, o que significa que as chaves foram definidas com sucesso.

Para verificar se as chaves foram definidas corretamente, use o comando GET para cada chave:

GET key1

Você deve ver a saída: "value1".

GET key2

Você deve ver a saída: "value2".

Agora, vamos definir três chaves, incluindo mykey, usando MSET:

MSET mykey newvalue key3 value3 key4 value4

Você deve ver a saída: OK.

Verifique os valores:

GET mykey

Você deve ver a saída: "newvalue".

GET key3

Você deve ver a saída: "value3".

GET key4

Você deve ver a saída: "value4".

Lembre-se de sair do redis-cli digitando exit ou pressionando Ctrl+D. Isso garante que seus comandos sejam devidamente registrados.

exit

Você agora definiu com sucesso múltiplas chaves com o comando MSET.

Recuperar Múltiplas Chaves com MGET

Nesta etapa, você aprenderá como recuperar os valores de múltiplas chaves em um único comando usando o comando MGET no Redis. Isso é mais eficiente do que usar múltiplos comandos GET, pois reduz o número de viagens de ida e volta para o servidor Redis.

Primeiro, certifique-se de estar conectado ao servidor Redis usando a interface de linha de comando do Redis (redis-cli). Abra um terminal no seu diretório ~/project e digite o seguinte comando:

redis-cli

Você deve ver o prompt do Redis: 127.0.0.1:6379>.

Da etapa anterior, temos as seguintes chaves e valores:

  • mykey: newvalue
  • key1: value1
  • key2: value2
  • key3: value3
  • key4: value4

Agora, vamos recuperar os valores de key1, key2 e mykey usando o comando MGET:

MGET key1 key2 mykey

Você deve ver a saída:

1) "value1"
2) "value2"
3) "newvalue"

Esta saída mostra os valores das chaves na ordem em que foram especificadas no comando MGET.

Agora, vamos recuperar os valores de key3, key4 e uma chave inexistente key5 usando o comando MGET:

MGET key3 key4 key5

Você deve ver a saída:

1) "value3"
2) "value4"
3) (nil)

Observe que o valor para a chave inexistente key5 é (nil).

Lembre-se de sair do redis-cli digitando exit ou pressionando Ctrl+D. Isso garante que seus comandos sejam devidamente registrados.

exit

Você agora recuperou com sucesso múltiplas chaves com o comando MGET.

Iterar Chaves Eficientemente com SCAN

Nesta etapa, você aprenderá como iterar pelas chaves no Redis de forma eficiente usando o comando SCAN. Ao contrário do comando KEYS, que pode bloquear o servidor quando usado em grandes bancos de dados, o SCAN é um iterador baseado em cursor que recupera chaves em lotes, minimizando o impacto no desempenho.

Primeiro, certifique-se de estar conectado ao servidor Redis usando a interface de linha de comando do Redis (redis-cli). Abra um terminal no seu diretório ~/project e digite o seguinte comando:

redis-cli

Você deve ver o prompt do Redis: 127.0.0.1:6379>.

Das etapas anteriores, temos as seguintes chaves:

  • mykey
  • key1
  • key2
  • key3
  • key4

O comando SCAN requer um valor de cursor inicial, que normalmente é 0. Ele retorna um novo valor de cursor para a próxima iteração e uma lista de chaves encontradas na iteração atual.

Vamos iniciar a iteração com um cursor de 0:

SCAN 0

Você deve ver uma saída semelhante a esta:

1) "0"
2) 1) "key2"
   2) "key3"
   3) "key4"
   4) "key1"
   5) "mykey"

O primeiro elemento na saída ("0") é o valor do cursor. O segundo elemento é uma matriz de chaves encontradas nesta iteração. Como o cursor retornado é 0, isso indica que a iteração está completa e recuperamos todas as chaves em uma única varredura (scan).

Você também pode usar a opção MATCH para filtrar chaves com base em um padrão. Por exemplo, para encontrar todas as chaves que começam com key, use o seguinte comando:

SCAN 0 MATCH key*

Você deve ver uma saída semelhante a esta:

1) "0"
2) 1) "key2"
   2) "key3"
   3) "key4"
   4) "key1"

O cursor é "0", o que significa que a iteração está completa, e podemos ver que apenas as chaves correspondentes ao nosso padrão "key*" são retornadas (excluindo "mykey").

Você também pode usar a opção COUNT para dar uma dica ao Redis sobre o número de elementos que você gostaria de recuperar em uma única chamada. Observe que isso é apenas uma dica, e o Redis pode retornar mais ou menos elementos. Por exemplo:

SCAN 0 COUNT 3

Você deve ver uma saída semelhante a esta:

1) "6"
2) 1) "key2"
   2) "key3"
   3) "key4"

Neste caso, obtemos um novo valor de cursor de "6", indicando que há mais chaves para varrer. Você continuaria a iteração usando este novo valor de cursor até receber um cursor de "0".

Lembre-se de sair do redis-cli digitando exit ou pressionando Ctrl+D. Isso garante que seus comandos sejam devidamente registrados.

exit

Você agora iterou com sucesso pelas chaves no Redis usando o comando SCAN.

Resumo

Neste laboratório, você aprendeu como realizar operações avançadas de gerenciamento de chaves no Redis. Especificamente, você usou o comando RENAME para renomear uma chave, alterando seu identificador enquanto preservava seu valor associado. Você também praticou a verificação da renomeação bem-sucedida recuperando o valor usando os nomes de chave antigos e novos, confirmando a existência e o valor da chave após a operação. Finalmente, você renomeou a chave de volta ao seu nome original para as etapas subsequentes.

O laboratório também introduziu o conceito de bancos de dados Redis e o comando MOVE, que permite transferir chaves entre esses bancos de dados lógicos dentro de uma única instância Redis. Você aprendeu como usar o comando MSET para definir eficientemente múltiplas chaves de uma vez e o comando MGET para recuperar seus valores. Por fim, você explorou o comando SCAN, uma ferramenta poderosa para iterar pelas chaves em grandes bancos de dados sem bloquear o servidor. Lembre-se de sempre sair do redis-cli após cada etapa para garantir que seus comandos sejam registrados para verificação.