Redis três que você não conhece - mecanismo de persistência do Redis

índice

 

Um, resistência

Dois, método de persistência RDB

2.1 Gatilho manual

2.2 Instrução de resistência RDB

2.3 Demonstração de recuperação e processo anormal

2.4 Vantagens e desvantagens da persistência RDB

Três, persistência AOF

3.1 Princípio de persistência AOF

3.2 Configuração persistente AOF

3.3 Recuperação persistente AOF

Quarto, sequência do mecanismo de carregamento persistente do Redis


Um, resistência

Como mencionamos nos dois primeiros capítulos, o redis é um banco de dados na memória e é rápido porque os dados são armazenados na memória. Então, qual é o problema de armazenar dados na memória? Claro, quando o serviço é reiniciado ou o servidor está fora do ar, os dados da memória são apagados e não podemos acessar os dados armazenados anteriormente. Então, como resolver esse problema? Claro que é para usar tecnologia de persistência

Persistência (persistência), ou seja, os dados armazenados (por exemplo, objetos de memória) para serem armazenados permanentemente no dispositivo de memória (por exemplo, disco). Persistência é um mecanismo que converte dados do programa entre estado persistente e estado transiente. Por exemplo, JDBC é um mecanismo de persistência. O arquivo IO também é um mecanismo de persistência.

O Redis também é um banco de dados de memória compatível com persistência, o que significa que o redis precisa sincronizar os dados da memória com o disco para garantir a persistência . A persistência pode evitar a perda de dados devido à saída do processo;

Redis suporta dois métodos de persistência, RDB e AOF

Dois, método de persistência RDB

Persistência de RDB O processo de gerar um arquivo de instantâneo ( .rdb ) dos dados do processo atual e salvá-lo no disco rígido. Existem disparadores manuais e automáticos.

2.1 Gatilho manual

O gatilho manual tem dois comandos: salvar e bgsave

 comando salvar : Bloqueia o Redis atual até que o processo de persistência RDB seja concluído. Se a instância de memória for muito grande para causar bloqueio de longo prazo, não é recomendado usá-lo no ambiente online

 Comando bgsave : o processo redis executa a operação fork para criar um processo filho, e o thread filho conclui a persistência. O tempo de bloqueio é muito curto (nível de microssegundo). É uma otimização de salvar . Quando o serviço redis é encerrado por desligamento redis-cli , se a persistência AOF não estiver habilitada , Executar o bgsave automaticamente ;

O processo bgsave é o seguinte:

2.2 Instrução de resistência RDB

Comando: config set dir / usr / local // Definir o caminho de salvamento do arquivo rdb

Backup: bgsave // irá dump.rdb salvar em usr / local em

Recuperação: O dump.rdb no diretório de instalação do redis e redis.conf no mesmo diretório, reinicie o redis pode

2.3 Demonstração de recuperação e processo anormal

1. Verifique o diretório de inicialização, não há arquivo de despejo

2. Defina o valor

3. Execute o comando shutdown para desligar o serviço, verifique o diretório e o arquivo de despejo correspondente foi gerado.

4. Reinicie o serviço redis e descubra que os dados ainda existem

5. Execute o comando de desligamento para desligar o serviço e excluir o arquivo de despejo

6. Inicie o redis para verificar e descobrir se os dados armazenados não existem mais.

2.4 Vantagens e desvantagens da persistência RDB

vantagem:

  • O arquivo binário compactado é adequado para backup, cópia completa e recuperação de desastres
  • Carregue RDB para recuperar dados muito mais rápido do que o modo AOF

Desvantagens:

  • Incapaz de alcançar persistência em tempo real, subprocessos devem ser criados todas as vezes e os custos de operação frequentes são muito altos

Três, persistência AOF

Como RDB não é adequado para persistência em tempo real, redis fornece método de persistência AOF para resolver

A maneira de abrir é definir no redis.conf: appendonly yes (não abre por padrão, não)

Nome de arquivo padrão: appendfilename "appendonly.aof" 

3.1 Princípio de persistência AOF

  1. Todos os comandos de escrita (set hset) irão anexar ao buffer aof_buf
  2. Sincronize o buffer AOF com o disco rígido
  3. À medida que os arquivos AOF se tornam cada vez maiores, é necessário reescrever e reescrever os arquivos AOF regularmente para obter a compressão
  4. Quando o serviço redis for reiniciado, carregue o arquivo AOF para restaurar

3.2 Configuração persistente AOF

Informação de configuração significado
append apenas sim Habilitar persistência AOF
appendfsync sempre Cada vez que um comando de gravação é recebido, ele é forçado a gravar no disco imediatamente, o mais lento, mas para garantir a persistência completa, não é recomendado o uso
appendfsync everysec Ele é forçado a gravar no disco uma vez por segundo, um meio-termo entre desempenho e persistência é recomendado.
no-appendfsync-on-rewrite sim No processo de exportação de instantâneos rdb, deseja interromper a sincronização do aof?
porcentagem de reescrita automática 100 O tamanho do arquivo aof é comparado com o tamanho da última reescrita e a taxa de crescimento é de 100%.
auto-aof-rewrite-min-size 64 MB arquivo aof, reescrever quando exceder pelo menos 64M

3.3 Recuperação persistente AOF

1. Defina appendonly yes;

2. Coloque appendonly.aof no diretório especificado pelo parâmetro dir;

3. Inicie o Redis, o Redis carregará automaticamente o arquivo appendonly.aof.

Quarto, sequência do mecanismo de carregamento persistente do Redis

Se os métodos de persistência AOF e RDB forem ativados ao mesmo tempo , a sequência de carregamento e o processo serão os seguintes

  1. Quando os arquivos AOF e RDB existem ao mesmo tempo, o AOF é carregado primeiro
  2. Se o AOF estiver desligado, carregue o arquivo RDB
  3. Carregar AOF / RDB com sucesso, reiniciar novamente com sucesso
  4. AOF / RDB tem um erro, o redis falha ao iniciar e imprime uma mensagem de erro


 

Acho que você gosta

Origin blog.csdn.net/b379685397/article/details/108130809
Recomendado
Clasificación