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 comandoSET mykey "myvalue".2) "myvalue": Resultado do comandoGET mykey.3) OK: Resultado do comandoSET anotherkey "anothervalue".4) (integer) 1: Resultado do comandoINCR 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.


