Transações Redis

RedisBeginner
Pratique Agora

Introdução

Neste laboratório, você explorará as transações do Redis. As transações do Redis permitem executar um grupo de comandos como uma única operação atômica, garantindo a consistência dos dados. Você aprenderá como iniciar uma transação com o comando MULTI, enfileirar comandos e, em seguida, executar ou descartar a transação. Você praticará a definição de chaves, a obtenção de valores e o incremento de contadores dentro de transações.

Iniciando uma Transação Redis

Nesta etapa, você aprenderá como iniciar uma transação no Redis usando o comando MULTI. As transações Redis garantem que uma série de comandos sejam executados como uma única unidade atômica. Isso significa que todos os comandos são bem-sucedidos ou nenhum deles é, garantindo a integridade dos dados.

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

redis-cli

Agora que você está no ambiente redis-cli, pode começar uma transação. Digite o seguinte comando e pressione Enter:

MULTI

Você deverá ver a seguinte saída:

OK

Isso confirma que o Redis entrou no modo de transação. Quaisquer comandos subsequentes que você digitar serão enfileirados e executados juntos quando você usar o comando EXEC.

Vamos enfileirar nosso primeiro comando. Definiremos uma chave chamada mykey com o valor myvalue. Digite o seguinte comando e pressione Enter:

SET mykey "myvalue"

A saída deve ser:

QUEUED

Isso indica que o comando SET foi adicionado com sucesso à fila da transação. Ele não será executado até que instruamos explicitamente o Redis a fazê-lo.

Mantenha o ambiente redis-cli aberto para a próxima etapa.

Enfileirando Mais Comandos e Executando a Transação

Nesta etapa, você adicionará mais comandos à fila da transação e, em seguida, executará a transação inteira usando o comando EXEC.

Agora, vamos enfileirar um comando para recuperar o valor de mykey:

GET mykey

Você deverá ver:

QUEUED

Em seguida, vamos adicionar outro comando para definir uma chave diferente, anotherkey, com o valor anothervalue:

SET anotherkey "anothervalue"

A saída deve ser:

QUEUED

Finalmente, vamos enfileirar um comando INCR para incrementar um contador chamado mycounter. Se mycounter não existir, o Redis o criará e o inicializará em 0 antes de incrementá-lo:

INCR mycounter

Você deverá ver:

QUEUED

Você agora enfileirou vários comandos dentro da transação. Para executá-los todos de uma vez, use o comando EXEC:

EXEC

A saída deve ser semelhante a esta:

1) OK
2) "myvalue"
3) OK
4) (integer) 1

Vamos analisar a saída:

  • 1) OK: Resultado do comando SET mykey "myvalue".
  • 2) "myvalue": Resultado do comando GET mykey.
  • 3) OK: Resultado do comando SET anotherkey "anothervalue".
  • 4) (integer) 1: Resultado do comando INCR mycounter.

Todos os comandos dentro da transação foram executados atomicamente.

Mantenha o ambiente redis-cli aberto para a próxima etapa.

Verificando a Execução da Transação

Nesta etapa, você verificará se os comandos da transação anterior foram executados corretamente, recuperando os valores das chaves que você definiu.

Para verificar os valores, use o comando GET para cada chave:

GET mykey
GET anotherkey
GET mycounter

Você deverá ver a seguinte saída:

"myvalue"
"anothervalue"
"1"

Isso confirma que a transação foi executada com sucesso e os valores das chaves foram atualizados conforme o esperado.

Mantenha o ambiente redis-cli aberto para a próxima etapa.

Cancelando uma Transação com DISCARD

Nesta etapa, você aprenderá como cancelar uma transação Redis usando o comando DISCARD. Isso é útil se você decidir que não deseja executar os comandos enfileirados.

Primeiro, conecte-se ao servidor Redis e inicie uma nova transação:

MULTI

Agora, vamos enfileirar alguns comandos:

SET mykey "newvalue"
INCR mycounter

Você deverá ver a resposta QUEUED para cada comando.

Agora, em vez de executar a transação, vamos cancelá-la. Use o comando DISCARD:

DISCARD

Você deverá ver:

OK

Isso confirma que a transação foi cancelada e todos os comandos enfileirados foram descartados. Para verificar, você pode checar o valor de mykey e mycounter. Eles não devem ter sido atualizados.

Lembre-se de sair do ambiente redis-cli para garantir que o comando seja registrado:

exit

Resumo

Neste laboratório, você aprendeu a usar transações Redis para executar múltiplos comandos atomicamente. Você praticou o início de transações com MULTI, o enfileiramento de comandos, a execução de transações com EXEC e o cancelamento de transações com DISCARD. Este conhecimento é crucial para manter a consistência dos dados no Redis ao realizar operações complexas.