[Compartilhar] Estratégia de persistência do Redis (RDB e AOF) e cenários aplicáveis

Estratégia de persistência do Redis

Existem duas estratégias de persistência para Redis: RDB e AOF . A persistência RDB é adequada para cenários que exigem backup e recuperação rápidos de dados, enquanto a persistência AOF é adequada para cenários que exigem maior precisão e segurança dos dados . O Redis também oferece suporte aos métodos de persistência RDB e AOF.

 

Persistência RDB (Redis DataBase)

A persistência RDB é salvar o instantâneo de dados na memória para o disco . Os instantâneos RDB podem ser acionados manualmente ou automaticamente, definindo um instantâneo agendado.

Vantagens do RDB:

  • Os instantâneos RDB podem fornecer um mecanismo de backup e recuperação melhor.
  • Os instantâneos RDB podem evitar possíveis problemas com AOF.
  • A velocidade de recuperação de instantâneos RDB para dados em grande escala é mais rápida que a do AOF.

Desvantagens do RDB:

  • Os instantâneos RDB são obtidos periodicamente e, se o serviço Redis parar inesperadamente, todos os dados entre o último instantâneo e a atualização serão perdidos.
  • Os instantâneos RDB podem ter algum impacto negativo no desempenho do servidor Redis, especialmente quando o instantâneo é obtido, a instância do Redis pode estar fora de serviço.

Persistência AOF (Arquivo Somente Anexo)

A persistência AOF é anexar cada operação de gravação recebida pelo servidor Redis a um arquivo AOF . Os arquivos AOF podem ser reproduzidos para reconstruir o conjunto de dados, o que significa que, se o servidor Redis cair ou travar, o conjunto de dados não será perdido .

Vantagens do AOF:

  • AOF pode fornecer um mecanismo de persistência e recuperação de dados mais granular.
  • O AOF pode proteger os dados muito bem, mesmo que o serviço Redis pare inesperadamente, no máximo apenas algumas operações de gravação serão perdidas.

Desvantagens do AOF:

  • Os arquivos AOF geralmente são maiores que os arquivos RDB e podem ocupar muito espaço em disco porque registram todas as operações de gravação.
  • Os arquivos AOF geralmente são mais lentos que os arquivos RDB porque cada operação de gravação precisa ser gravada no disco. A função AOF é particularmente poderosa, mas sua frequência de gravação é maior, então o desempenho pode ser afetado.

Processo de persistência do Redis

Processo de persistência RDB


A persistência RDB é salvar os dados no Redis em um arquivo binário. Você pode definir o intervalo de tempo para salvar arquivos RDB no arquivo de configuração do Redis para realizar o salvamento automático. Os instantâneos RDB também podem ser criados manualmente por meio de comandos. O comando para ativar a persistência RDB é o seguinte:

redis-cli config set save "900 1 300 10 60 10000"

persistência AOF


A persistência AOF é anexar todos os comandos de gravação no Redis a um arquivo. Defina o método de salvamento do arquivo AOF no arquivo de configuração do Redis, que pode realizar o salvamento automático ou criar manualmente o arquivo AOF por meio de comandos. O comando para ativar a persistência AOF é o seguinte:

redis-cli config set appendonly yes

Depois de ativar a persistência, você pode usar os seguintes comandos para criar manualmente um instantâneo ou alternar a estratégia de persistência:

1. Crie um instantâneo manualmente

redis-cli bgsave

2. Mude a estratégia de persistência

redis-cli config set appendonly no
redis-cli config set save ""

#设置为yes
appendonly yes
#存储的文件
appendfilename "appendonly.aof" 

O comando acima pode desativar a persistência ou alternar a estratégia de persistência modificando os parâmetros.

O método de persistência AOF (Aappend-only file) do Redis pode realizar o armazenamento persistente de dados, e a persistência confiável de dados pode ser realizada anexando instruções Redis ao arquivo AOF.

O Redis fornece uma variedade de mecanismos de acionamento de configuração de AOF, como:

  1. sempre: Escreva todos os comandos do Redis no arquivo AOF.

  2. everysec: Grava os comandos no buffer AOF no disco pelo menos uma vez por segundo.

  3. no: Não executa persistência AOF.

Por exemplo, se o AOF estiver definido para ser gravado no disco uma vez por segundo, quando os comandos no buffer AOF do Redis se acumularem até certo ponto ou após um período de tempo, os comandos no buffer serão gravados no arquivo AOF , então para obter armazenamento persistente de dados. Isso pode não apenas garantir a confiabilidade e a consistência dos dados, mas também não causar perdas excessivas no desempenho do Redis.

appendfsync everysec


Suplemento: estratégia de reescrita AOF

A reescrita AOF é uma estratégia de otimização no Redis, que é usada para reduzir o tamanho dos arquivos AOF e evitar que o desempenho seja muito grande.

O princípio de realização da reescrita AOF é gerar um novo arquivo AOF digitalizando a estrutura de dados na memória e gravar as operações nele no novo arquivo AOF em um formato compacto. Como as operações no novo arquivo AOF são verificadas a partir da memória, dados redundantes no arquivo AOF podem ser evitados, atingindo assim o objetivo de compactar o tamanho do arquivo.

Condições de gatilho para reescrita AOF:

  • Execute manualmente o comando BGREWRITEAOF
  • Quando o tamanho do arquivo AOF atingir o tamanho especificado pela opção de configuração de reescrita do redis (o padrão é 64 MB )

Passos de reescrita AOF:

  • O Redis começa a analisar a estrutura de dados na memória.
  • O Redis cria um novo arquivo AOF em branco.
  • O Redis grava todos os comandos de gravação encontrados durante a análise em um novo arquivo AOF em um formato compacto.
  • Quando todos os comandos forem gravados, o Redis renomeará o arquivo AOF antigo para um arquivo de backup e renomeará o novo arquivo AOF para um arquivo AOF.
  • O Redis reinicia a gravação de comandos no novo arquivo AOF e continua a usar o AOF para persistência. 

Vantagens da reescrita AOF:

  • A reescrita AOF pode reduzir o tamanho dos arquivos AOF e melhorar o desempenho do Redis.
  • Quando o arquivo AOF for grande, reescrever o AOF executará a operação de recuperação mais rapidamente e reduzirá a ocupação de espaço no disco rígido. 

Desvantagens da reescrita AOF:

  • A reescrita AOF fará com que o processo Redis pare por um período de tempo durante a reescrita, afetando assim o desempenho do Redis. Portanto, em um ambiente de produção, o tempo de reescrita deve ser escolhido com cuidado.
  • Se o AOF for reescrito com muita frequência, isso afetará o desempenho do Redis e aumentará o consumo do disco rígido.

Acho que você gosta

Origin blog.csdn.net/weixin_42380504/article/details/131766141
Recomendado
Clasificación