redis04: Explicação detalhada de RDB e AOF da tecnologia de persistência no redis

Um: O que é persistência do redis: a Redis工作时数据都存储在内存中,万一服务器断电,则所有数据都会丢失。针对这种情况,Redis采用持久化机制来增强数据安全性。tecnologia de persistência é dividida em RDB e AOF, vou apresentar esses dois mecanismos separadamente abaixo.

Dois: Sobre RDB (Redis DataBase)
1. O que é RDB: Resumindo, é para gerar SNAPSHOTTING e armazenar os dados armazenados no redis no disco em diferentes momentos;

2. Princípio do mecanismo RDB: o Redis criará (bifurca) um subprocesso separadamente para persistência e primeiro gravará os dados em um arquivo temporário e, em seguida, usará esse arquivo temporário para substituir a última persistência após o término do processo de persistência. Arquivo. Durante todo o processo, o processo principal não executa nenhuma operação IO, o que garante um desempenho extremamente alto. Se a recuperação de dados em grande escala for necessária e a integridade da recuperação de dados não for muito sensível, o método RDB é melhor que o método AOF Mais eficiente . A desvantagem do RDB é que os dados após a última persistência podem ser perdidos.

3. O tempo de disparo do RDB:

#   save ""   禁用RDB持久化的策略,只要不设置任何save指令,或者给
save传入一个空字符串参数也可以.  

sava  秒钟  写操作次数
save 900 1    900s内至少修改1个key会触发RDB
save 300 10    300s内至少修改了10个key会触发RDB
save 60 10000   60s内至少修改了10000次的key会触发RDB

Demonstração de caso, altere save 300 10 para salvar 60 5 e exclua o arquivo dump.rdb primeiro para observar o efeito

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Aqui você pode ver que quando modificamos a chave mais de 5 vezes, o arquivo dump.rdb é regenerado.

Isso foi depois que fechamos o redis e o reabrimos, examinamos dump.rdb e descobrimos que nossos dados anteriores foram recarregados na memória.

Insira a descrição da imagem aqui

4. Como acionar o instantâneo RDB:

1.配置文件中默认的快照配置  
拷贝后重新使用  cp dump.rdb   dump.rdb_bk

2.save或者是bgsave命令
save和bgsave一般应用在事件比较紧急的情况下,也就是改动了键值立马保存在dump.rdb中。

3.执行flushall命令,也会产生dump.rdb文件,但里面是空的,无意义。

Insira a descrição da imagem aqui

5. Vantagens e desvantagens do RDB

优势:
1.适合大规模的数据恢复
2.对数据完整性和一致性要求不高

劣势:
1.在一定间隔时间做一次备份,所以如果redis意外down掉的话,就会丢失最后一
次快照后的所有修改。
2.Fork的时候,内存中的数据被克隆了一份,大约2倍的膨胀性需要考虑。

Três: Sobre AOF (Anexar Apenas Arquivo)
1. O que é AOF:

Grave cada operação de gravação na forma de um log, registre todas as instruções de gravação executadas pelo Redis (as operações de leitura não são gravadas ), apenas anexe os arquivos, mas não os reescreva, o redis lerá o arquivo para reconstruir os dados no início da inicialização. outras palavras, se o redis for reiniciado, o comando de gravação será executado de frente para trás de acordo com o conteúdo do arquivo de log para restaurar os dados completos.

Observe que a função aof em redis.conf é fechada por padrão, precisamos abri-la manualmente

Insira a descrição da imagem aqui

2. A forma de recuperação de dados em AOF (antes desta operação, podemos excluir o arquivo dump.rdb temporariamente e, em seguida, copiar um arquivo denominado redis.conf_aof no diretório atual)

Insira a descrição da imagem aqui

Como alteramos vários valores-chave, podemos descobrir que os dois arquivos appendonly.aof e dump.rdb foram gerados separadamente.

Insira a descrição da imagem aqui

3. Quando appendonly.aof e dump.rdb existem no diretório, o arquivo appendonly.aof tem alta prioridade. Por exemplo, podemos adicionar algum conteúdo de texto incorreto ao arquivo appendonly.aof acima (a última linha é o conteúdo que rabiscado), para o arquivo correto dump.rdb, não o alteramos.

Insira a descrição da imagem aqui

Quando reiniciamos o redis, descobrimos que houve um erro, então podemos julgar que, quando esses dois arquivos aparecem ao mesmo tempo, a prioridade de appendonly.aof é maior.

Insira a descrição da imagem aqui

Neste momento, o redis também nos fornece um método para reparar o arquivo appendonly.aof danificado. Se for ./redis-check-aof --fix ../appendonly.aofexibido com sucesso, o reparo foi bem-sucedido. Então, quando o redis for reiniciado novamente, ele pode iniciar normalmente e os dados anteriores também podem ser carregados na memória.

Insira a descrição da imagem aqui

4. Sobre vários parâmetros importantes em AOF

1 appendonly   no  默认是mo,一般我们要用AOF时要将no改为yes

2 appendfilename "appendonly.aof"   生成的AOF的文件名,一般情况下不要去修改这个名字

3 Appendfsync  everysec (其他两个值分别是Always和no) 

Always:同步持久化,每次发生数据变更会立即记录到磁盘,性能较差但数据完整性比较好
Everysec:出厂默认推荐,异步操作,每秒记录,如果一秒内宕机,有数据丢失(此参数用的较多)
no :从不同步


5. Sobre reescrever em AOF:

5.1 reescrever:
AOF usa o método de anexação de arquivo, e o arquivo ficará cada vez maior. Para evitar essa situação, um
novo mecanismo de reescrita foi adicionado. Quando o tamanho do arquivo AOF exceder o limite definido, o Redis iniciará o Arquivo AOF O conteúdo é compactado e apenas o conjunto mínimo de instruções que pode restaurar os dados é retido.
Você pode usar o comando gbrewriteaof

5.2 Princípio da reescrita de reescrita: Quando o
arquivo AOF continua a crescer e é muito grande, um novo processo será bifurcado para reescrever o arquivo (também gravar o arquivo temporário primeiro e depois renomear), percorrer os dados na memória do novo processo , cada registro tem uma instrução The Set. A operação de reescrever o arquivo aof não lê o arquivo aof antigo, mas reescreve o conteúdo do banco de dados em toda a memória com um comando para reescrever um novo arquivo aof, que é semelhante a um instantâneo.

5.3 Mecanismo de gatilho de reescrita: o
Redis registrará o tamanho AOF durante a última reescrita.A configuração padrão é para acionar quando o tamanho do arquivo AOF é duas vezes maior após a última reescrita e o arquivo é maior que 64M.

Insira a descrição da imagem aqui

6. As vantagens e desvantagens do AOF

优势:见上述4.3
劣势:相同数据集的数据而言aof文件要远大于rdb文件,恢复速度慢于rdb
AOF运行效率要慢于rdb,每秒同步策略效率较好,不同步效率和rdb相同。

Quatro: Qual deve ser usado entre RDB e AOF?

Recomenda-se ativar esses dois métodos de persistência ao mesmo tempo, pois neste caso
1. Quando o redis for reiniciado, o AOF será carregado primeiro para restaurar os dados originais, porque em circunstâncias normais o conjunto de dados salvo pelo arquivo AOF é salvo do que o arquivo RDB. O conjunto de dados do
RDB deve ser completo. 2. Os dados do RDB não são em tempo real, e quando ambos são usados, o servidor só encontrará arquivos AOF ao reiniciar, mas o RDB também precisa existir neste tempo, porque RDB é mais adequado para fazer backup do banco de dados (AOF está constantemente mudando Bom backup), reinicialização rápida e não haverá nenhum BUG potencial de AOF, ele pode ser reservado como um meio de recuperação de dados.

Acho que você gosta

Origin blog.csdn.net/weixin_44080445/article/details/114108582
Recomendado
Clasificación