Princípio de persistência Redis AOF

Configuração persistente AOF

# Se abrir um
appendonly yes

# File name
appendfilename "appendonly.aof"

# Modo de sincronização
appendfsync everysec

# aof Se deve sincronizar durante a reescrita
no-appendfsync-on-rewrite no

# Configuração do acionador de reescrita
auto-aof-rewrite-percent 100
auto-aof-rewrite-min-size 64 MB

# O que fazer se houver um erro ao carregar aof
aof-load-truncated yes # yes significa que se houver um problema com o arquivo aof tail, escreva um registro de log e continue a execução. não significa pedir para escrever e escrever depois de esperar pelo reparo

# Estratégia de reescrita de arquivo
aof-rewrite-incremental-fsync yes

 

 

  • Existem três modos de sincronização appendfsync: Em geral, a configuração everysec é adotada , e uma escolha equilibrada é feita em dados e segurança, e a perda de dados é de até 1s.

    • sempre: sincroniza cada comando de gravação para um de imediatamente, que é lento, mas seguro

    • everysec: sincronizar uma vez a cada segundo, o que é um compromisso

    • não: o Redis não faz o processamento, é muito rápido, mas também é o menos seguro

       

  • A visão AOF de todo o processo pode ser dividida aproximadamente em duas etapas, a etapa é escrever o comando em tempo real (se estiver appendfsync everysecconfigurado, haverá perda), a segunda etapa é uma reescrita do arquivo aof.

    • degrau:

      • Comando write = "Append to aof_buf =" Sincronizar aof disco chamando a função flushAppendOnlyFile por meio de evento de tempo

    • o motivo:

      • A gravação em tempo real no disco trará IO de disco muito alto, afetando o desempenho geral

         

  • Análise da eficiência e segurança da persistência AOF

sempre: Cada loop de evento de tempo grava todo o conteúdo do buffer AOF_BUF no arquivo AOF e sincroniza o arquivo AOF.Esta é a maneira mais segura, mas a operação do disco e o atraso de bloqueio são as despesas de E / S.
everysec: Sincronize uma vez a cada segundo, o desempenho e a segurança são relativamente moderados, e também é o método recomendado pelo redis. Se você encontrar uma falha de servidor físico, pode fazer com que o registro AOF seja perdido no último segundo (pode ser uma perda parcial).
não: o Redis não chama diretamente a sincronização de arquivos, mas a entrega ao sistema operacional para processamento. O sistema operacional pode acionar a sincronização de acordo com as condições de preenchimento do buffer / tempo ocioso do canal, etc .; este é um método comum de operação de arquivo. O desempenho é melhor.Quando o servidor físico falha, a quantidade de perda de dados será relacionada à configuração do sistema operacional. A chamada flushAppendOnlyFile em nenhum modo não precisa realizar operações de sincronização

Acho que você gosta

Origin blog.csdn.net/qq_41023026/article/details/89739240
Recomendado
Clasificación