Maison  >  Article  >  base de données  >  Comment Redis conserve-t-il les données ?

Comment Redis conserve-t-il les données ?

(*-*)浩
(*-*)浩original
2019-11-21 10:03:122800parcourir

Redis est appelé base de données en mémoire car il stocke toutes ses données en mémoire, donc Redis a de fortes performances de vitesse. Cependant, comme les données sont stockées en mémoire, lorsque Redis est redémarré, toutes les données stockées en mémoire seront perdues. . Afin de rendre les données persistantes, Redis propose deux méthodes : la méthode RDB et la méthode AOF.

Comment Redis conserve-t-il les données ?

1. Mode RDB

La persistance du mode RDB est complétée par la prise d'instantanés. Lorsqu'il est rempli, sous certaines conditions, Redis. générera automatiquement une copie de toutes les données dans la mémoire et la stockera sur le disque dur. Ce processus est appelé « instantané ». « Instantané » est similaire à la prise d'une photo. Au moment où vous appuyez sur le déclencheur, la photo que vous figez est appelée « instantané ».

Redis propose quatre cas d'instantané sur les données : (Apprentissage recommandé : tutoriel vidéo redis )

Instantané automatique selon les règles de configuration ;


Lorsque l'utilisateur exécute la commande SAVE ou BGSAVE ;

exécute la commande FLUSHALL

lors de l'exécution de la réplication ;

2. Méthode AOF

La persistance est obtenue via RDB. Une fois Redis quitté anormalement, toutes les données modifiées après le dernier instantané seront perdues. Afin de réduire le risque de perte de données due à l'arrêt du processus, la méthode AOF peut être utilisée pour assurer la persistance des données.


La persistance AOF enregistre chaque opération d'écriture et de suppression traitée par le serveur sous la forme d'un journal. Les opérations de requête ne seront pas enregistrées, mais seront enregistrées sous forme de texte. être visible dans le dossier des opérations.

Son apparence est de compenser les défauts du RDB (incohérence des données), il utilise donc la forme d'un journal pour enregistrer chaque opération d'écriture et l'ajouter au fichier. Au redémarrage de Redis, les instructions d'écriture seront exécutées d'avant en arrière en fonction du contenu du fichier journal pour terminer le travail de récupération de données.

Par défaut, Redis n'active pas la persistance AOF. Il peut être démarré via le paramètre appendonly : appendonly yes


Une fois la persistance AOF activée, chaque exécution modifiera la commande Redis Data. , Redis écrira la commande dans un fichier au format AOF sur le disque dur, c'est-à-dire que le fichier au format .aof stocke certaines instructions Redis.

À l'heure actuelle, veuillez noter que lorsque les données dans Redis sont fréquemment manipulées, la mémoire occupée par le fichier au format AOF deviendra de plus en plus grande et il y aura de nombreuses instructions inutiles, telles que l'exécution continue de set foo 1. , définissez foo 2, définissez foo 3.

Ensuite, les deux premières instructions n'ont aucun sens. Redis est très puissant. C'est-à-dire que chaque fois qu'une certaine condition est atteinte, Redis réécrira automatiquement le fichier AOF, et cette condition peut être définie. dans le fichier de configuration. Le processus de réécriture est uniquement lié aux données de la mémoire et n'a rien à voir avec le fichier AOF précédent. Ceci est similaire au RDB.


Lors de la synchronisation des données du disque dur, en raison du mécanisme de mise en cache du système d'exploitation, les données ne sont pas réellement écrites sur le disque dur, mais entrent dans le cache du disque dur du système. Par défaut, le système effectuera une opération de synchronisation toutes les 30 secondes. Pendant ces 30 secondes, si le système se ferme anormalement, les données de la mémoire du disque dur seront perdues.

Redis permet d'activer simultanément les modes RDB et AOF, ce qui garantit non seulement la sécurité des données, mais rend également les opérations de sauvegarde très simples. AOF peut réduire efficacement le risque de perte de données, et RDB peut faciliter la sauvegarde des 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