A configuração de persistência é um aspecto crucial ao otimizar o Redis para ambientes de produção que exigem alta performance e confiabilidade. A persistência garante que os dados armazenados em memória não sejam perdidos em caso de falhas ou reinicializações do servidor. Neste post, exploraremos as diferentes opções de persistência do Redis e como configurá-las para obter o melhor desempenho possível.
Por que a Persistência é Importante?
O Redis é um banco de dados em memória, o que significa que todos os dados são armazenados na RAM para acesso rápido. Sem persistência, todos os dados seriam perdidos se o servidor Redis for reiniciado ou ocorrer uma falha. A configuração adequada de persistência permite que o Redis salve dados no disco, garantindo a durabilidade dos dados.
Opções de Persistência no Redis
O Redis oferece duas principais formas de persistência:
- Snapshots RDB (Redis Database Backup)
- AOF (Append Only File)
1. Snapshots RDB
Os snapshots RDB criam cópias completas do banco de dados em intervalos de tempo específicos ou baseados em critérios de mudanças no dataset.
Vantagens:
- Uso eficiente de recursos: A operação é realizada em um processo filho, minimizando o impacto no desempenho.
- Arquivos compactos: Ideais para backups completos e transferência de dados.
Desvantagens:
- Perda potencial de dados recentes: Em caso de falha, é possível perder dados desde o último snapshot.
- Impacto no desempenho durante a criação: O processo de snapshot pode consumir I/O significativo.
Configuração do RDB no redis.conf
:
save 900 1 # Salva a cada 900 segundos se pelo menos 1 chave foi alterada
save 300 10 # Salva a cada 300 segundos se pelo menos 10 chaves foram alteradas
save 60 10000 # Salva a cada 60 segundos se pelo menos 10000 chaves foram alteradas
dbfilename dump.rdb
dir /var/lib/redis
2. Append Only File (AOF)
O AOF registra cada operação de escrita recebida pelo servidor, permitindo uma recriação precisa do dataset.
Vantagens:
- Maior segurança dos dados: Minimiza a perda de dados em caso de falhas.
- Recuperação precisa: Permite reconstituir o banco de dados exatamente como estava.
Desvantagens:
- Arquivos maiores: O AOF tende a ser mais volumoso que os snapshots RDB.
- Possível impacto no desempenho: Devido à frequência de gravação no disco.
Configuração do AOF no redis.conf
:
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec # Sincroniza no disco a cada segundo
no-appendfsync-on-rewrite yes
Otimizando a Persistência para Alta Performance
Escolha Entre RDB e AOF
- RDB: Ideal quando o desempenho é a prioridade e alguma perda de dados é aceitável.
- AOF: Recomendado quando a durabilidade dos dados é crítica e a perda de dados deve ser mínima.
Configurações Recomendadas
1. Ajuste do appendfsync
no AOF
Para equilibrar desempenho e segurança:
appendfsync everysec
2. Desativar no-appendfsync-on-rewrite
Reduz o impacto no desempenho durante a reescrita do AOF:
no-appendfsync-on-rewrite yes
3. Otimizar a Reescrita do AOF
Configura quando a reescrita do AOF deve ocorrer:
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
4. Configurar rdbcompression
Ativa a compressão para economizar espaço em disco:
rdbcompression yes
5. Definir stop-writes-on-bgsave-error
Evita a corrupção de dados interrompendo gravações em caso de erro:
stop-writes-on-bgsave-error yes
Considerações Adicionais
- Hardware Adequado: Utilize discos SSD para melhorar a velocidade de I/O, reduzindo o impacto das operações de persistência.
- Monitoramento: Use ferramentas como Prometheus e Grafana para monitorar métricas chave.
- Testes de Recuperação: Realize testes regulares de restauração a partir de backups.
Recomendação de Servidor
Para suportar as demandas de persistência e desempenho, recomendamos o uso de servidores robustos. As instâncias de alta performance da Akamai, disponíveis através da Linode, são ideais para esse propósito.
Configuração Sugerida:
- CPU: Múltiplos núcleos com alta frequência.
- RAM: Suficiente para todo o dataset e operações adicionais.
- Disco: SSDs rápidos para operações de persistência.
Obtenha a sua instância ideal através do nosso link de afiliado e garanta alta performance e confiabilidade para o seu servidor Redis.
Conclusão
A configuração adequada da persistência no Redis é fundamental para equilibrar desempenho e durabilidade dos dados. Ao ajustar as configurações de RDB e AOF de acordo com as necessidades do seu ambiente, você garante que seu servidor Redis opere de forma eficiente, minimizando riscos de perda de dados e impactos no desempenho.