Gerenciamento de Persistência do Redis

RedisBeginner
Pratique Agora

Introdução

Neste laboratório, exploraremos o gerenciamento de persistência do Redis, com foco em como configurar e gerenciar a durabilidade dos dados. Começaremos configurando a persistência do Redis Database (RDB) usando o comando CONFIG SET, que nos permite criar snapshots pontuais dos nossos dados do Redis. Também abordaremos a habilitação da persistência Append-Only File (AOF), o salvamento manual de dados, a verificação da última hora de salvamento e a reescrita do arquivo AOF para otimizar seu tamanho.

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

Configurar Persistência RDB

Nesta etapa, configuraremos a persistência do Redis Database (RDB). O RDB cria snapshots pontuais do seu conjunto de dados em intervalos especificados. Usaremos o comando CONFIG SET para modificar a configuração do servidor Redis dinamicamente, sem reiniciar o servidor.

Primeiro, conecte-se ao servidor Redis usando a interface de linha de comando do Redis (redis-cli). Abra seu terminal e execute o seguinte comando:

redis-cli

Você verá o prompt do redis-cli, que se parece com 127.0.0.1:6379>.

Vamos verificar a configuração atual de salvamento RDB usando o comando CONFIG GET.

CONFIG GET save

A saída padrão mostra vários pontos de salvamento:

1) "save"
2) "900 1 300 10 60 10000"

Isso significa que o Redis salvará o banco de dados se pelo menos 1 chave tiver sido alterada em 900 segundos, OU pelo menos 10 chaves tiverem sido alteradas em 300 segundos, OU pelo menos 10000 chaves tiverem sido alteradas em 60 segundos.

Agora, vamos modificar isso para um único ponto de salvamento: salvar o banco de dados se pelo menos 1 chave tiver sido alterada em 60 segundos.

CONFIG SET save "60 1"

Você deverá ver OK como saída, confirmando a alteração.

OK

Verifique se a configuração foi atualizada:

CONFIG GET save

A saída agora deve refletir nossa nova configuração:

1) "save"
2) "60 1"

Em seguida, configuraremos o diretório onde o Redis armazena seu arquivo RDB (dump.rdb). Primeiro, saia do redis-cli para executar alguns comandos do shell.

exit

Agora, crie um novo diretório e defina as permissões corretas. O servidor Redis é executado como o usuário redis, portanto, ele precisa de propriedade do diretório para gravar arquivos.

sudo mkdir -p /var/lib/redis/labex_data
sudo chown redis:redis /var/lib/redis/labex_data

Conecte-se novamente ao Redis e defina a configuração dir para o novo caminho.

redis-cli
CONFIG SET dir /var/lib/redis/labex_data

Você deverá ver OK. Verifique a alteração:

CONFIG GET dir

A saída confirmará o novo diretório:

1) "dir"
2) "/var/lib/redis/labex_data"

Agora o Redis salvará seus arquivos de persistência no diretório /var/lib/redis/labex_data.

Para garantir que seu progresso seja salvo e verificado corretamente, por favor, saia da sessão redis-cli.

exit

Habilitar Persistência AOF

Nesta etapa, habilitaremos a persistência Append-Only File (AOF). O AOF registra cada operação de escrita recebida pelo servidor. Isso oferece melhor durabilidade do que o RDB, pois os dados são gravados no log com mais frequência.

Primeiro, conecte-se ao servidor Redis:

redis-cli

Verifique se o AOF está atualmente habilitado usando o comando CONFIG GET.

CONFIG GET appendonly

Por padrão, ele está desabilitado:

1) "appendonly"
2) "no"

Para habilitar o AOF, defina o parâmetro appendonly como yes.

CONFIG SET appendonly yes

Você verá OK como saída. Agora, verifique a alteração:

CONFIG GET appendonly

A saída deve confirmar que o AOF agora está habilitado:

1) "appendonly"
2) "yes"

Com o AOF habilitado, o Redis registrará todos os comandos de escrita no arquivo appendonly.aof localizado no diretório que configuramos na etapa anterior (/var/lib/redis/labex_data).

Vamos adicionar alguns dados para ver o AOF em ação. Este comando SET será gravado no arquivo AOF.

SET mykey "myvalue"

Você deverá ver a seguinte saída:

OK

Para garantir que seu progresso seja salvo e verificado corretamente, por favor, saia da sessão redis-cli.

exit

Salvar Dados Manualmente com SAVE

Nesta etapa, você aprenderá como acionar manualmente um snapshot RDB usando o comando SAVE. Embora o Redis salve dados automaticamente com base na sua configuração, um salvamento manual é útil para criar backups ou garantir que os dados sejam persistidos antes de um evento de manutenção planejado.

Primeiro, conecte-se ao servidor Redis:

redis-cli

Vamos adicionar alguns novos dados para que tenhamos algo para salvar.

SET anotherkey "anothervalue"

Você deverá ver a seguinte saída:

OK

Agora, acione manualmente um salvamento em disco usando o comando SAVE.

SAVE

O comando SAVE executa um salvamento síncrono, o que significa que ele bloqueará todas as outras solicitações de cliente até que a operação de salvamento seja concluída. Para bancos de dados grandes, isso pode causar uma pausa perceptível.

Você verá OK assim que o salvamento for concluído:

OK

Isso confirma que o Redis gravou com sucesso o conjunto de dados atual no arquivo dump.rdb no diretório /var/lib/redis/labex_data. Para ambientes de produção, o comando não bloqueante BGSAVE é geralmente preferido.

Para garantir que seu progresso seja salvo e verificado corretamente, por favor, saia da sessão redis-cli.

exit

Verificar Último Tempo de Salvamento com LASTSAVE

Nesta etapa, usaremos o comando LASTSAVE para verificar o timestamp do último salvamento RDB bem-sucedido. Este comando é útil para monitorar e verificar se sua estratégia de persistência está funcionando como esperado.

Primeiro, conecte-se ao servidor Redis:

redis-cli

Para obter o timestamp do último salvamento bem-sucedido, execute o comando LASTSAVE.

LASTSAVE

O comando retorna um timestamp Unix, que é o número de segundos que se passaram desde 1º de janeiro de 1970 (UTC). A saída será algo como isto, embora o número seja diferente para você:

(integer) 1678886400

Este timestamp corresponde ao momento em que você executou o comando SAVE na etapa anterior.

Vamos ver a atualização do timestamp. Adicionaremos mais dados, realizaremos outro salvamento manual e, em seguida, verificaremos o último horário de salvamento novamente.

SET anotherkey2 "anothervalue2"
SAVE
LASTSAVE

Após executar esses comandos, você verá um novo timestamp, mais recente, retornado pelo segundo comando LASTSAVE, confirmando que um novo snapshot foi criado.

Para garantir que seu progresso seja salvo e verificado corretamente, por favor, saia da sessão redis-cli.

exit

Reescrever AOF com BGREWRITEAOF

Nesta etapa, aprenderemos como reescrever o arquivo AOF usando o comando BGREWRITEAOF. À medida que sua aplicação é executada, o arquivo AOF aumenta de tamanho. Ele pode conter muitos comandos redundantes (por exemplo, incrementar um contador várias vezes). Reescrever o arquivo AOF cria um novo arquivo compacto com o conjunto mínimo de comandos necessários para reconstruir o conjunto de dados atual, o que pode melhorar significativamente os tempos de inicialização do Redis.

Primeiro, conecte-se ao servidor Redis:

redis-cli

Para demonstrar o efeito da reescrita, vamos realizar algumas operações que adicionarão comandos desnecessários ao log AOF.

SET key1 "value1"
SET key2 "value2"
DEL key1
SET key3 "value3"

O arquivo AOF agora contém quatro comandos. No entanto, para reconstruir o estado atual, precisamos apenas definir key2 e key3. Os comandos relacionados a key1 são redundantes.

Agora, acione uma reescrita em segundo plano do arquivo AOF.

BGREWRITEAOF

Você verá uma mensagem de confirmação de que o processo foi iniciado:

Background append only file rewriting started

O Redis realiza esta operação em segundo plano, portanto, não bloqueia as solicitações do cliente. Ele cria um arquivo AOF temporário, grava o conjunto de dados atual nele da maneira mais eficiente possível e, em seguida, substitui atomicamente o arquivo AOF antigo pelo novo.

Após a conclusão da reescrita, o arquivo appendonly.aof será menor e conterá apenas os comandos para definir key2 e key3.

Para garantir que seu progresso seja salvo e verificado corretamente, por favor, saia da sessão redis-cli.

exit

Resumo

Neste laboratório, você aprendeu os fundamentos do gerenciamento de persistência do Redis. Você praticou a configuração de ambos os mecanismos de persistência RDB e AOF usando CONFIG SET. Você também aprendeu a realizar salvamentos manuais de dados com o comando SAVE, verificar o último horário de salvamento com LASTSAVE e otimizar o arquivo AOF com BGREWRITEAOF. Essas habilidades são essenciais para garantir a durabilidade dos dados e manter uma instância Redis saudável.