Maison  >  Article  >  base de données  >  Méthode AOF de persistance Redis

Méthode AOF de persistance Redis

齐天大圣
齐天大圣original
2020-05-22 09:49:051917parcourir

La méthode RDB de Redis ne peut pas atteindre la persistance, mais la méthode AOF le peut. Si les données sont importantes et que la perte entraînera de graves conséquences, alors la méthode RDB est évidemment inappropriée et la méthode AOF doit être utilisée. La méthode aof est quelque peu similaire au journal binlog de MySQL, qui enregistre uniquement les opérations nouvelles, modifiées et supprimées. La différence est que Redis réécrira le fichier aof de temps en temps pour réduire la taille du fichier aof.

Workflow AOF

Ici, pourquoi la commande écrit-elle d'abord dans aof_buf, car si le fichier aof est écrit directement, alors les performances complètement dépend Supprimer les performances IO du disque dur. Écrire aof_buf consiste à améliorer les performances d'écriture.

Configuration

appendonly : S'il faut activer le mode persistance, la valeur par défaut est non. Si vous souhaitez l'activer, remplacez-le par oui.

dir : aof répertoire de stockage de fichiers

appendfilename : aof nom de fichier

appendfsync : aof mode de synchronisation, il y a trois valeurs, comme suit :

  • toujours : synchroniser à chaque fois qu'une commande est écrite, la sécurité des données est la plus élevée, mais les performances sont médiocres

  • everysec : synchroniser chaque seconde, la méthode par défaut, élevée performances, sécurité Les performances sont correctes

  • non : l'opération de synchronisation est laissée au système d'exploitation et la sécurité des données est la pire.

auto-aof-rewrite-percentage et auto-aof-rewrite-min-size Ces deux configurations sont liées au mécanisme de réécriture aof Seules ces deux conditions sont remplies en même temps. . Déclenchera le mécanisme de réécriture.

auto-aof-rewrite-min-size signifie que lors de la réécriture, la taille du fichier doit être supérieure à cette valeur. La valeur par défaut est 64 Mo

auto-aof-rewrite-percentage signifie le. fichier actuel La taille doit être beaucoup plus grande que la taille du fichier après la dernière réécriture.

Réécriture AOF

Le mécanisme de réécriture aof de Redis a deux manières : le déclenchement manuel et le déclenchement automatique. Pour déclencher manuellement, entrez la commande bgrewriteof. Le déclenchement automatique satisfait aux deux conditions mentionnées ci-dessus.

Pourquoi la réécriture peut réduire la taille du fichier ? Il existe plusieurs situations :

  • Les clés expirées et les clés supprimées ne seront plus enregistrées

  • De nombreuses opérations simples peuvent être complétées par une seule opération, comme lpush a, lpush b, qui après réécriture est lpush a b.

Jetons un coup d'œil au processus de réécriture aof

Méthode AOF de persistance Redis

  1. Exécuter la commande bgrewriteof

  2. Le processus principal crée un processus enfant

  3. Le mécanisme aof d'origine continue de s'exécuter et en même temps, de nouvelles commandes sont également écrites dans aof_rewrite_buf

  4. Le processus enfant génère un nouveau fichier aof

  5. Informez le processus parent que le nouveau fichier aof a été généré avec succès ; ajoutez les commandes dans aof_rewrite_buf au nouveau fichier aof ; remplacez l'ancien fichier aof par le nouveau fichier aof.

  6. Après avoir terminé les étapes ci-dessus, la réécriture de l'aof est terminée.

Notez que s'il existe plusieurs services Redis sur un serveur, il est préférable de séparer leur temps de réécriture pour éviter une concurrence excessive entre les E/S et le processeur.

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