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
Exécuter la commande bgrewriteof
Le processus principal crée un processus enfant
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
Le processus enfant génère un nouveau fichier aof
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.
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!