Mecanismos de Persistência no Redis: RDB e AOF

Persistência de Dados no Redis

Redis opera como banco de dados em memória, exigindo armazenamento em disco para evitar perda de informações, processo denominado persistência.

Persistência RDB

O RDB captura instantâneos dos dados em memória, gerando arquivos compactados. Oferece recuperação rápida, mas pode perder alterações recentes não persistidas.

Métodos de Ativação

Comandos Diretos

SAVE: Bloqueia o servidor durante a criação do arquivo RDB.

BGSAVE: Utiliza processo secundário para persistência, mantendo o servidor oepracional. Impede execução simultânea de outros comandos de persistência.

Persistência Automática

Configuração via redis.conf:


# Disparadores de persistência automática
save 900 1     # 1 alteração em 15 minutos
save 300 10    # 10 alterações em 5 minutos
save 60 10000  # 10000 alterações em 1 minuto

Implementação:

  • A rotina serverCron verifica condições a cada 100ms
  • Array saveparams armazena regras de persistência
  • Contador mod_count rastreia alterações desde último backup
  • Timestamp last_backup registra última persistência

Análise de Arquivos RDB

Estrutura organizada por bancos de dados, com pares chave-valor e metadados de expiração. Ferramentas como redis-rdb-tools permitem inspeção.

Persistência AOF

Registra comandos de escrita sequencialmente. A recuperação ocorre mediante reexecução das operações.

Mecanismo de Operação

  1. Acrescentar comando: Comandos são formatados para o buffer cmd_buffer
  2. Gravação: Dados são enfileirados para escrita em disco
  3. Sincronização: Operações fsync garantem persistência física

Sistemas Linux utilizam bufferização para otimizar escritas em disco (escrita diferida).

Configuração


# Habilitar AOF
appendonly yes

# Nome do arquivo
appendfilename "backup.aof"

# Política de sincronização
appendfsync everysec

Opções de sincronização:

  • always: Sincronização imediata (seguro, lento)
  • everysec: Sincronização a cada segundo (equilíbrio)
  • no: Controle pelo sistema operacional (rápido, arriscado)

Recuperação de Dados

  1. Criação de cliente simulado sem conexão de rede
  2. Leitura e análise sequencial de comandos
  3. Execução das operações no servidor

Reescrita AOF

Reduz tamanho do arquivo eliminando comandos redundantes através da reconstrução do estado atual.

Disparadores

  • Manual: Comando BGREWRITEAOF
  • Automático: Configuração por tamanho e crescimento relativo

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

Implementação

Processo secundário gera novo arquivo com comandos otimizados, baseado no estado atual do banco. Permite operação contínua do servidor principal durante o processo.

Tags: Redis PersistênciaDados RDB AOF BancoMemória

Publicado em 7-2 06:37