Pourquoi la persistance est-elle nécessaire ?
Normalement, toutes les données Redis sont stockées en mémoire. Une fois la base de données en panne et redémarrée, toutes les données seront perdues, même en mode cluster Redis ou Sentinelle Redis, la récupération des données de synchronisation maître-esclave. est toujours Cela prendra du temps.
La fonction de persistance peut efficacement éviter la perte de données causée par la sortie du processus. Les données peuvent être restaurées en utilisant les fichiers précédemment conservés au prochain redémarrage.
Après avoir utilisé la persistance Redis, les données seront stockées sur le disque. Lorsque la base de données effectue une synchronisation incrémentielle, le temps requis est bien inférieur au temps requis pour effectuer une synchronisation complète. La récupération des données après des pannes joue un rôle très important dans un environnement de production !
Il existe deux solutions pour la persistance des données Redis
Il existe deux solutions pour la persistance Redis :
RDB est un stockage de données instantané. enregistrez toutes les données Redis à l'heure actuelle sur le disque.
AOF est une méthode de stockage basée sur l'ajout qui enregistre les opérations d'écriture Redis sur le disque en temps réel.
Quelles sont les différences entre ces deux solutions ? Laissez-moi les expliquer une par une~
1 Persistance RDB
Lorsque l'écriture de Redis déclenche la condition de persistance RDB (elle peut également être déclenchée en l'exécutant manuellement. la commande dgsave). Le processus principal Redis crée un processus enfant pour créer un fichier de stockage RDB temporaire. Une fois la création du fichier terminée, le fichier temporaire est renommé pour remplacer le fichier RDB d'origine. Le fichier RDB est un fichier unique très approprié pour la sauvegarde après sinistre et la récupération des données. La restauration de la base de données via le fichier RDB prend généralement moins de temps pour charger un fichier instantané 1G dans la mémoire.
Inconvénients :
La persistance RDB ne sauvegardera les données Redis que périodiquement. Lorsque Redis tombe en panne avant le déclenchement du prochain stockage, toutes les données de la mémoire seront perdues.
De plus, lorsque la quantité de données est importante, l'opération de fork du processus enfant consomme beaucoup de CPU. Comme le montre le tableau de surveillance ci-dessous, la consommation de CPU de Redis montera en flèche lorsque la persistance RDB est déclenchée toutes les 1 800 secondes. . Un blocage d'une seconde durée peut se produire pendant le processus enfant de fork.
Paramètres :
option de sauvegarde. Si elle est configurée comme sauvegarde vide "", la persistance RDB est désactivée. Plusieurs conditions de déclenchement pour activer la persistance RDB peuvent être configurées, telles que 1 écriture dans les 900 secondes. . Instantané déclenché par l'entrée/10 instantanés déclenchés par l'écriture dans un délai de 300 secondes. Cela peut être librement configuré en fonction de vos propres conditions d'écriture Redis pour équilibrer les performances et la sécurité des données. Il est recommandé d'activer l'option stop-writes-on-bgsave-error Lorsqu'une erreur se produit dans redis bgsave, la demande du client sera rejetée. L'échec de bgsave est généralement dû à un espace disque ou mémoire insuffisant, et la surveillance est effectuée. nécessaires pour améliorer la sécurité des données.
2. Persistance AOFAOF atteint la persistance en enregistrant les commandes pour les opérations d'écriture Redis. En utilisant AOF pour la persistance, la sécurité des données Redis sera grandement améliorée en cas de temps d'arrêt anormal, jusqu'à 1 seconde de données. être perdu. Les opérations d'écriture de Redis sont enregistrées dans le fichier AOF. Le format du fichier est clair et facile à comprendre et peut être facilement modifié, facilitant ainsi la reconstruction des données.
Inconvénients :
append définit uniquement s'il faut activer la persistance AOF.
appendfsync dispose de trois modes de persistance : toujours/toutes les secondes/non, en tenant compte de la vitesse et de la sécurité du stockage des données, configurez-le à chaque seconde et synchronisez les données sur le disque toutes les secondes.
3. Comparaison des avantages et des inconvénients de la persistance RDB et AOFLes deux méthodes ont leurs propres mérites. Comparons les deux méthodes de persistance des données Redis :
4. vous allez d'abord restaurer les données. Vérifiez si le fichier AOF existe, sinon essayez de charger le fichier RDB.Dans différentes circonstances, en fonction de la quantité de données, des exigences des applications en matière de sécurité des données, des contraintes budgétaires, etc., diverses stratégies de persistance seront utilisées dans les environnements de production réels. Cette phrase peut être réécrite comme suit : Vous pouvez choisir de ne pas utiliser la persistance, ou vous pouvez choisir d'utiliser la persistance RDB ou AOF distincte, ou vous pouvez activer la persistance RDB et AOF en même temps.
PS : Le choix de la persistance doit être considéré avec la stratégie maître-esclave de Redis, car la réplication maître-esclave et la persistance ont également la fonction de sauvegarde des données, et le maître hôte et l'esclave esclave peuvent choisir indépendamment la solution de persistance.
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!