Maison >base de données >Redis >Cet article vous amènera à comprendre la version complète de la persistance Redis.
❝Cet article explique les points de connaissances Introduction à la persévérance BDR AOF La différence entre RDB et AOF Scénarios d'application de persistance
❞
❝Kaka a compilé une feuille de route pour créer un guide d'entretien et s'est préparé à écrire des articles selon cette feuille de route. Plus tard, j'ai découvert que j'ajoutais des points de connaissances qui n'étaient pas complétés. J'attends également avec impatience que vos partenaires se joignent à nous pour nous aider à apporter leur aide. Rendez-vous dans la section commentaires !
❞
centos7.0 redis4.0 Répertoire de stockage Redis :/usr/local/redis Répertoire de stockage redis.conf :/usr/local/redis/data
Toutes les données de Redis sont stockées en mémoire Si Redis plante, les données seront perdues. . La persistance Redis consiste à enregistrer les données sur le disque. Le mécanisme de travail qui utilise un support de stockage permanent pour sauvegarder les processus de données et restaurer les données enregistrées à un moment précis est appelé persistance.
Qu'est-ce qui est enregistré dans le processus de persistance ?
Le premier formulaire d'instantané stocke les résultats des données et se concentre sur les données, qui sont le RDB discuté ci-dessous
Le deuxième processus d'opération stocke le processus d'opération et la structure de stockage est complexe. processus d'exploitation des données, qui est l'AOF
Dans. En fait, cette récupération de données est comparée à d'autres relations. Il n'est fondamentalement pas nécessaire de faire quoi que ce soit pour restaurer une grande base de données. Redémarrez-le simplement
Cette image provient de vidéos en ligne . L'exécution de la commande save bloquera le serveur Redis actuel jusqu'à ce que le processus RDB en cours soit terminé, ce qui peut provoquer un blocage à long terme. Cette commande est essentiellement abandonnée et n'est plus utilisée pendant le processus de travail. Remplacera tout par bgsave
Lorsque bgsave est exécuté dans Redis, il sera retourner directement Une sauvegarde en arrière-plan commencée
En ce moment, nous examinons le fichier journal. La commande bgsave est optimisée pour le problème de blocage de la sauvegarde
<span style="display: block; background: url(https://my-wechat.mdnice.com/point.png); height: 30px; width: 100%; background-size: 40px; background-repeat: no-repeat; background-color: #272822; margin-bottom: -7px; border-radius: 5px; background-position: 10px 10px;"></span><code class="hljs" style="overflow-x: auto; padding: 16px; color: #ddd; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #272822; border-radius: 5px;"><span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">save</span> 900 1<br/><span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">save</span> 300 10<br/><span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">save</span> 60 10000<br/><span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">stop-writes-on-bgsave-error</span> <span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">yes</span><br/></code>
enregistrer [Heure] [Nombre de modifications clés]
C'est à dire disons, il y en a 10 en 300 secondes. Si la valeur de la clé change, bgsavesera exécuté en arrière-plan.
Persistance AOF : enregistrez chaque commande d'écriture dans un journal indépendant et réexécutez les commandes dans le fichier AOF lors du redémarrage pour réaliser la récupération des données. Par rapport au RDB, il peut être simplement décrit comme le processus d'enregistrement de la génération de données
Le rôle principal d'AOF est de résoudre la nature en temps réel de la persistance des données, et c'est actuellement la méthode principale de persistance Redis
Exécuter une commande redis
Redis ' AOF rafraîchira la zone tampon de commande
puis la synchronisera avec le fichier .aof configuré dans redis.conf selon une certaine stratégie
appendonly yes|no
appendfsync always| everysec | no
Ensuite, redémarrez le service redis et vous pourrez voir le fichier appendonly.aof dans le répertoire usr/local/redis/data Ensuite, nous Le client Redis exécute une commande, vérifions-la. Vous pouvez voir que les données seront stockées dans le fichier appendonly.aof.
Regardons d'abord un cas après avoir défini à plusieurs reprises la clé de nom, ouvrez le fichier appendonly.aof pour le voir, vous pouvez voir qu'il y a trois opérations, mais ces trois opérations sont toutes modifiées par une seule touche ! Ne pouvons-nous pas sauvegarder uniquement la dernière clé ? Avec cette question, nous continuons à regarder vers le bas
À mesure que les commandes continuent pour être écrit sur AOF, le fichier deviendra de plus en plus gros. Afin de résoudre ce problème, redis introduit le mécanisme de réécriture AOF pour compresser la taille du fichier. La réécriture de fichiers AOF est le processus de conversion des données du processus Redis en commandes d'écriture et de leur synchronisation avec le nouveau fichier AOF. En termes simples, il convertit les résultats d'exécution de plusieurs commandes sur les mêmes données en enregistrements d'exécution d'instructions correspondant aux données du résultat final.
Par exemple, ci-dessus, nous avons exécuté la commande set name trois fois, mais au final nous n'avons besoin que des données de la dernière exécution. Autrement dit, nous n'avons besoin que du dernier enregistrement d'exécution.
hdel,srem
. Définissez une valeur clé plusieurs fois, etc. lpush list a lpush lsit b lpush list c
peut être convertie en lpush list a b c
.Cependant, afin d'éviter un débordement de tampon client provoqué par un volume de données excessif, chaque instruction de type list,set,hash,zset
peut écrire jusqu'à 64 éléments commande : bgrewriteaof
Suite à notre question 3-5, on exécute la commande bgrewriteaof sur la ligne de commande et on vérifie appendonly .aof file
Après l'exécution, vous constaterez que le fichier devient plus petit et qu'il n'y a qu'une seule instruction dans le fichier
Configuration : auto-aof-rewrite-percentage 100 | auto-aof-rewrite-min-size 64mb
Paramètres de comparaison du déclencheur : aof_current_size | aof_base_size
Quand aof_current_size > auto-aof-rewrite-min-size 64mb commencera la réécriture
Cette photo provient d'Internet
est très sensible aux données, il est recommandé de utilisez la solution de persistance AOF par défaut
Validité de l'étape de présentation des données, il est recommandé d'utiliser la solution de persistance RDB
Comparaison complète
❝La persévérance dans l'apprentissage, la persévérance dans les blogs et la persévérance dans le partage sont les convictions que Kaka a toujours soutenues depuis sa carrière. J'espère que les articles de Kaka pourront être vus sur l'immense Internet. Vous apportant un peu d'aide. Rendez-vous dans le prochain numéro 》
.
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!