Maison >base de données >Redis >Quelles sont les solutions de persistance dans Redis ?

Quelles sont les solutions de persistance dans Redis ?

WBOY
WBOYavant
2023-05-27 08:08:02794parcourir

Quelles sont les méthodes de persistance ? Quelle est la différence ?

Les solutions de persistanceRedis sont divisées en deux types : RDB et AOF.

RDB

La persistance RDB peut être exécutée manuellement ou périodiquement selon la configuration. Sa fonction est de sauvegarder l'état de la base de données à un moment donné dans un fichier RDB. Le fichier RDB est un fichier binaire compressé à travers lequel il peut être utilisé. restauré. L'état de la base de données à un moment donné. Étant donné que le fichier RDB est enregistré sur le disque dur, même si Redis plante ou se ferme, tant que le fichier RDB existe, il peut être utilisé pour restaurer l'état de la base de données.

Vous pouvez générer des fichiers RDB via SAVE ou BGSAVE.

La commande SAVE bloquera le processus redis jusqu'à ce que le fichier RDB soit généré. Pendant la période de blocage du processus, redis ne peut traiter aucune demande de commande, ce qui est évidemment inapproprié.

BGSAVE déboursera un processus enfant, puis le processus enfant sera responsable de la génération du fichier RDB. Le processus parent peut continuer à traiter les demandes de commande sans bloquer le processus.

AOF

AOF est différent de RDB qui enregistre l'état de la base de données en enregistrant les commandes d'écriture exécutées par le serveur Redis.

AOF implémente le mécanisme de persistance en trois étapes : ajouter, écrire et synchroniser.

  1. Lorsque la persistance AOF est activée, une fois que le serveur a exécuté la commande d'écriture, la commande d'écriture sera ajoutée à la fin du tampon aof_buf

  2. Avant que le serveur ne termine chaque boucle d'événement, la fonction flushAppendOnlyFile sera appelée Décider s'il faut enregistrer le contenu de aof_buf dans le fichier AOF peut être déterminé en configurant appendfsync.

always ##aof_buf内容写入并同步到AOF文件
everysec ##将aof_buf中内容写入到AOF文件,如果上次同步AOF文件时间距离现在超过1秒,则再次对AOF文件进行同步
no ##将aof_buf内容写入AOF文件,但是并不对AOF文件进行同步,同步时间由操作系统决定

Si elle n'est pas définie, l'option par défaut sera Everysec, car bien que ce soit toujours le plus sûr (une seule commande d'écriture de la boucle d'événement sera perdue), les performances sont médiocres et le mode Everysec ne peut perdre qu'une seconde. données d'horloge, tandis que l'efficacité du mode aucun est similaire à celle de chaque seconde, mais toutes les données de commande d'écriture après la dernière synchronisation du fichier AOF seront perdues.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer