Quel est le principe de mise en œuvre du mécanisme de persistance Redis ?
Persistance : Redis est une base de données en mémoire et les données sont stockées en mémoire Afin d'éviter une perte permanente de données due à la sortie du processus, les données de Redis doivent être régulièrement enregistrées de la mémoire sur le disque dur dans certains cas. formulaire (données ou commandes) ;Lorsque Redis redémarrera la prochaine fois, utilisez le fichier persistant pour récupérer les données. De plus, en cas de sauvegarde après sinistre, les fichiers persistants peuvent être copiés vers un emplacement distant
Quel est le processus de persistance ?
Puisque les données Redis peuvent être enregistrées sur disque, à quoi ressemble le processus ?
Les cinq processus suivants sont requis :
(1) Le client envoie une opération d'écriture au serveur (les données sont dans la mémoire du client).
(2) Le serveur de base de données reçoit les données de la requête d'écriture (les données sont dans la mémoire du serveur).
(3) Le serveur appelle l'appel système write pour écrire les données sur le disque (les données sont dans le tampon de la mémoire système).
(4) Le système d'exploitation transfère les données du tampon vers le contrôleur de disque (les données sont dans le cache disque).
(5) Le contrôleur de disque écrit les données sur le support physique du disque (les données tombent en fait sur le disque).
Ces 5 processus sont un processus de sauvegarde normal dans des conditions idéales, mais dans la plupart des cas, nos machines, etc. connaîtront diverses pannes :
Occurrence de la base de données Redis En cas de panne, jusqu'à la troisième étape. ci-dessus est terminé, il peut être conservé et enregistré, et les deux étapes restantes seront complétées par le système d'exploitation pour nous si le système d'exploitation tombe en panne, les cinq étapes ci-dessus doivent être complétées.
Afin de faire face aux 5 étapes ci-dessus, redis propose deux méthodes de persistance différentes : RDB (Redis DataBase) et AOF (Append Only File)
En raison de la nécessité d'opérations fork, les instantanés RDB et la réécriture AOF sont très importants pour Redis Provoque un blocage, ce qui est une opération très gourmande en ressources. Par conséquent, afin de ne pas affecter la réponse du processus principal Redis, nous devons réduire le blocage autant que possible.
1. Réduisez la fréquence du fork, par exemple, vous pouvez déclencher manuellement RDB pour générer des instantanés et une réécriture AOF ;
2 Contrôlez l'utilisation maximale de la mémoire de Redis pour éviter que le fork ne prenne trop de temps ; matériel puissant ;
4. Configurez correctement la stratégie d'allocation de mémoire Linux pour éviter une panne de fork due à une mémoire physique insuffisante
Expérience pratique en ligne :1. façons Pour générer des données, la persistance peut être désactivée. Si les données sont perdues, elles peuvent être récupérées par d'autres moyens ;
2 Développez votre propre stratégie pour vérifier régulièrement la situation de Redis, puis déclencher manuellement des sauvegardes et réécrire les données ;
3. Vous pouvez rejoindre des machines maître-esclave, utiliser une machine esclave pour le traitement des sauvegardes et d'autres machines répondent normalement aux commandes client ; 4.La persistance RDB et la persistance AOF peuvent exister en même temps et être utilisées ensemble ;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!