Maison  >  Article  >  base de données  >  Persistance Redis : introduction et différences entre RDB et AOF

Persistance Redis : introduction et différences entre RDB et AOF

王林
王林original
2023-06-20 23:55:422800parcourir

Redis est une base de données non relationnelle principalement basée sur le stockage en mémoire, ce qui permet à Redis de bien fonctionner dans des scénarios avec une concurrence élevée et des exigences élevées en matière de vitesse de lecture et d'écriture. Cependant, étant donné que Redis stocke les données en mémoire, après une panne ou un redémarrage du serveur, les données précédemment stockées dans la mémoire seront effacées et les données ne seront pas conservées, ce qui peut entraîner de graves problèmes de perte de données. Afin de résoudre ce problème, Redis propose un mécanisme de persistance, utilisant principalement deux stratégies : RDB et AOF. Cet article présentera en détail les mécanismes de persistance RDB et AOF de Redis, ainsi que leurs différences.

Persistance RDB

Le mécanisme de persistance RDB consiste à stocker les données dans la mémoire actuelle de Redis dans un fichier disque. Ce fichier disque peut être un instantané (instantané) ou plusieurs instantanés stockés régulièrement par Redis. Le fichier est enregistré. sur le disque afin que le fichier d'instantané puisse être utilisé pour restaurer les données dans la mémoire du serveur après le redémarrage du serveur Redis.

RDB Snapshot

Lorsque la persistance RDB est sélectionnée, Redis écrira les données à l'heure actuelle sur le disque sous la forme d'un instantané. Ce processus est compressé, Redis peut écrire plusieurs instantanés et l'intervalle entre chaque instantané peut être défini via le fichier de configuration Redis.conf.

Dans Redis.conf, nous pouvons trouver les informations de configuration suivantes :

# 快照持久化相关配置设置
save 900 1  ## 900秒(15分钟)之内至少发生1次数据变更,持久化快照
save 300 10  ## 300秒(5分钟)之内至少发生10次数据变更,持久化快照
save 60 10000  ## 60秒之内至少发生10000次数据变更,持久化快照

La configuration ci-dessus indique que toutes les 15 minutes dans Redis, ou lorsqu'il y a 10 ou 10 000 opérations d'ajout et de suppression de données dans Redis, Redis enregistrera automatiquement les données dans mémoire sur disque.

La méthode d'instantané RDB peut efficacement éviter la perte de données après un temps d'arrêt de Redis et peut également être utilisée pour la sauvegarde de données et à d'autres fins. Cependant, si Redis plante ou redémarre et que les données du dernier fichier d'instantané n'existent pas ou sont incomplètes, les données seront perdues, il est donc recommandé de ne pas définir la durée de l'instantané trop longue.

Avantages et inconvénients de RDB

Avantages de RDB :

  1. La méthode de persistance RDB est basée sur des instantanés, qui peuvent garantir efficacement l'intégrité et la disponibilité des données.
  2. La méthode de persistance RDB a une taille de fichier relativement petite et est facile à stocker.
  3. La méthode de persistance RDB convient à la sauvegarde de données à grande échelle, à la migration et à d'autres scénarios.

Inconvénients de RDB :

  1. La méthode de persistance RDB utilise un seul fichier pour stocker les données. Chaque écriture doit écraser le fichier précédent, ce qui est sujet à la perte de données.
  2. La fréquence de persistance du RDB est déterminée par le temps et la fréquence de modification des données. Une durée trop longue ou une faible fréquence de modification des données entraînera une perte de données.

Persistance AOF

La persistance AOF (Append Only File) consiste à stocker la commande d'écriture sous la forme d'ajout du fichier d'écriture. Au redémarrage du service, Redis effectuera la récupération des données selon les commandes stockées dans ce fichier. La méthode de persistance AOF peut garantir le stockage permanent des données même si Redis est en panne ou redémarré, les données peuvent être récupérées.

Format de fichier AOF

Le format de fichier AOF est un fichier journal de données qui est ajouté au fichier pour chaque opération d'écriture. Chaque ligne d'enregistrement du fichier journal stocke une commande Redis, qui est une transaction Redis complète. Cette transaction sera ajoutée à la fin du fichier journal AOF.

En mode de persistance AOF, Redis écrira chaque nouvelle commande dans le fichier du disque sous forme d'écriture d'ajout, de sorte que la taille du fichier AOF augmente constamment. Lorsque le fichier AOF dépasse la limite de taille prédéfinie, Redis déclenchera automatiquement la réécriture du fichier AOF. Ce processus nettoiera les données expirées dans la base de données et les convertira en un instantané pour le stockage. Le but de la réécriture du fichier AOF est de compresser la taille du fichier AOF, afin d'éviter de réduire les performances de Redis en raison de fichiers AOF trop volumineux.

Avantages et inconvénients de la persistance AOF

Avantages de la méthode de persistance AOF :

  1. Le mécanisme de la méthode de persistance AOF est basé sur l'enregistrement de commandes, qui peut restaurer plus précisément l'historique et la chronologie des modifications de données.
  2. Les fichiers AOF peuvent être enregistrés dans plusieurs fichiers différents. Cette fonctionnalité peut éviter le problème de réduction des performances de lecture et d'écriture causée par un seul fichier trop volumineux.
  3. La méthode de persistance AOF est très adaptée aux statistiques et au traitement des journaux.

Inconvénients de la méthode de persistance AOF :

  1. Les fichiers AOF sont plus volumineux que les fichiers d'instantanés et occupent donc plus de capacité de stockage.
  2. La persistance AOF nécessite plus de ressources système car les commandes doivent être enregistrées dans des fichiers.
  3. La réécriture de fichiers AOF est un processus consommateur de performances, et ce processus affectera les performances de lecture et d'écriture de Redis.

La différence entre RDB et AOF

  1. RDB est une sauvegarde complète, tandis qu'AOF est une sauvegarde incrémentielle.
  2. Par défaut, Redis utilise la persistance RDB et la persistance AOF doit être activée manuellement.
  3. En mode de persistance AOF, Redis enregistrera chaque opération de commande d'écriture et ajoutera de nouveaux enregistrements d'écriture à la fin du journal. En mode de persistance RDB, Redis écrira un instantané des données dans l'état actuel en mémoire sur le disque.
  4. La méthode de persistance AOF est plus sécurisée et fiable, mais la capacité des fichiers AOF est relativement plus grande, tandis que la capacité des fichiers RDB est relativement plus petite.

Conclusion

Le mécanisme de persistance de Redis est conçu pour éviter la perte de données lorsque Redis tombe en panne ou redémarre. La persistance RDB et la persistance AOF sont deux stratégies proposées par Redis. Leur principale différence réside dans la manière d'enregistrer les données et la capacité du fichier de stockage. Lorsque nous utilisons Redis pour le traitement des données, nous pouvons choisir différentes méthodes de persistance en fonction de nos besoins réels, afin que Redis puisse mieux fonctionner en matière de stockage et de récupération de données.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn