Editado 3 Semanas atrás por ExtremeHow Equipe Editorial
RedisConfiguraçãoConfiguraçõesPersistênciaArmazenamento de DadosBackupRecuperaçãoBanco de DadosAdministraçãoServidor
Tradução atualizada 3 Semanas atrás
O Redis é um data store de chave-valor em memória amplamente usado para cache, gerenciamento de sessões e análises em tempo real. Um dos aspectos críticos da operação do Redis é a persistência. Persistência, no contexto do Redis, é garantir a durabilidade dos dados contra falhas inesperadas. Embora o Redis seja principalmente um banco de dados em memória, sua camada de persistência ajuda a garantir disponibilidade de dados além da instabilidade da memória. O Redis possui duas opções principais de persistência: RDB (Backup do Banco de Dados Redis) e AOF (Arquivo de Somente Anexação). Aqui está um guia detalhado para configurar efetivamente a persistência do Redis, explorando cada opção e fornecendo uma compreensão abrangente de como elas funcionam.
Antes de entrar na configuração, é importante entender as duas principais opções de durabilidade que o Redis oferece:
RDB significa backup de banco de dados Redis. Esta forma de persistência cria instantâneos de seus datasets em memória em intervalos especificados. Os instantâneos são salvos como arquivos binários no disco. A principal vantagem do RDB é sua facilidade de uso e a rápida restauração dos datasets a partir desses instantâneos. No entanto, a desvantagem é que se o Redis travar, os dados não salvos no instantâneo mais recente serão perdidos.
Assim como com o RDB, você pode configurar o Redis para automaticamente tirar instantâneos em intervalos especificados ou com base na frequência de mudanças no dataset. Os arquivos de instantâneo podem ser movidos para diferentes servidores para backup, fornecendo uma camada adicional de proteção de dados.
AOF significa Arquivo de Somente Anexação. Diferente do RDB, que tira instantâneos periódicos, o AOF registra cada operação de gravação recebida pelo servidor. Isso é anexado a um arquivo que pode ser usado para recriar o dataset quando necessário. O AOF fornece melhor durabilidade do que o RDB, pois grava mudanças no disco com mais frequência.
Com o AOF, você pode controlar a frequência das gravações no disco por meio de várias opções de configuração. Arquivos somente anexos são maiores do que os instantâneos RDB, mas oferecem a vantagem de uma recuperação de dados mais detalhada.
Para configurar o Redis para usar a persistência RDB, você deve definir as políticas de snapshot que deseja. Isso geralmente é feito no arquivo redis.conf
, que é o principal arquivo de configuração do Redis.
O arquivo de configuração do Redis, por padrão, geralmente é encontrado em /etc/redis/redis.conf
em sistemas Linux ou onde quer que você escolha instalar o Redis. Abra este arquivo no seu editor de texto favorito.
No arquivo de configuração, você encontrará as seguintes linhas:
save 900 1
save 300 10
save 60 10000
Cada uma dessas linhas especifica uma condição sob a qual o Redis criará um instantâneo do seu dataset.
save 900 1
: Salvar o dataset a cada 900 segundos (15 minutos) se pelo menos 1 chave tiver mudado.save 300 10
: Salvar o dataset a cada 300 segundos (5 minutos) se houver pelo menos 10 mudanças.save 60 10000
: Salvar o dataset a cada 60 segundos se houver pelo menos 10.000 mudanças.Você pode ajustar essas configurações para atender às suas necessidades. Por exemplo, se quiser salvar 5 alterações de chave a cada 10 minutos, adicione uma linha como esta: save 600 5
.
Depois de fazer as mudanças, salve o arquivo de configuração e reinicie o servidor Redis para aplicar as alterações. Isso é feito usando o comando: sudo systemctl restart redis
ou qualquer método que você use para gerenciar os serviços no seu sistema.
A persistência AOF proporciona um nível mais alto de proteção de dados do que os instantâneos RDB, registrando cada operação de gravação. Habilitar a persistência AOF também envolve alguns ajustes no arquivo redis.conf
.
No seu arquivo redis.conf
, encontre a seguinte linha:
# appendonly no
Simplesmente descomente a linha removendo o #
e mude no
para yes
conforme mostrado abaixo:
appendonly yes
A persistência AOF proporciona várias opções de configuração:
always
: Os dados são imediatamente gravados no disco toda vez que são escritos. Fornece máxima segurança de dados, mas é mais lento.everysec
: Os dados são gravados no disco a cada segundo. Fornece um bom compromisso entre desempenho e proteção de dados.no
: Deixe o sistema operacional decidir quando gravar os dados, as políticas de cache geralmente são implementadas no nível do SO.redis.conf
, pode ser alternada por:no-appendfsync-on-rewrite no
BGREWRITEAOF
.aof-rewrite-incremental-fsync yes
.Como com o RDB, após modificar o arquivo de configuração, salve as alterações e reinicie o Redis para aplicá-las:
sudo systemctl restart redis
Você pode configurar o Redis para usar tanto a persistência RDB quanto AOF juntas. Esta abordagem híbrida proporciona a flexibilidade dos instantâneos, assim como a granularidade dos anexos de gravações. Em cenários com requisitos de alta confiabilidade, esta é a melhor prática.
Para alcançar isso, certifique-se de que tenha configurado o RDB conforme descrito anteriormente e habilitado o AOF:
appendonly yes appendfsync everysec
Quando ambos os métodos de persistência estão em uso, durante a inicialização, o Redis preferirá carregar dados a partir do AOF por padrão, pois ele geralmente possui o estado mais atualizado dos dados.
Escolher o método de reforço correto depende principalmente dos requisitos específicos da aplicação:
Depois de configurar sua configuração de persistência desejada, é essencial testar e verificar adequadamente o comportamento:
A persistência do Redis é um aspecto crítico para gerenciar efetivamente a durabilidade dos dados. Ao entender e implementar corretamente o RDB e o AOF, ou uma combinação de ambos, você garante que seus dados permaneçam seguros em casos de falhas. Um equilíbrio cuidadoso dos requisitos de desempenho e segurança de dados ajudará a decidir a opção mais apropriada para seu caso de uso.
Como sempre, faça backups regulares e considere sua arquitetura de sistema geral, incluindo fatores como replicação e clusterização, para proteção abrangente de dados.
Se você encontrar algo errado com o conteúdo do artigo, você pode