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
serverCronverifica condições a cada 100ms - Array
saveparamsarmazena regras de persistência - Contador
mod_countrastreia alterações desde último backup - Timestamp
last_backupregistra ú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
- Acrescentar comando: Comandos são formatados para o buffer
cmd_buffer - Gravação: Dados são enfileirados para escrita em disco
- Sincronização: Operações
fsyncgarantem 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
- Criação de cliente simulado sem conexão de rede
- Leitura e análise sequencial de comandos
- 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.