Maison  >  Article  >  base de données  >  RDB pour la persistance des données Redis

RDB pour la persistance des données Redis

齐天大圣
齐天大圣original
2020-05-22 08:12:431530parcourir

Contrairement à Memcache, Redis peut conserver les données sur le disque dur. Redis propose actuellement trois méthodes de persistance : la persistance hybride RDB, AOF et RDB-AOF. La sécurité et la sauvegarde des données sont au centre des travaux d'exploitation et de maintenance. Jetons un coup d'œil aux scénarios d'introduction et d'application de la persistance RDB.

La méthode de persistance par défaut utilisée par Redis est RDB. Les fichiers RDB occupent très peu de place, donc la génération de fichiers et la vitesse de chargement sont très rapides.

Générer un fichier RDB

La génération d'un fichier RDB est divisée en méthode manuelle et méthode automatique .

Regardez d'abord la méthode manuelle. Il existe deux commandes qui peuvent déclencher la génération de fichiers RDB. La différence entre save et bgsave est que l'opération de sauvegarde bloque redis jusqu'à ce que la génération du fichier RDB soit terminée. Mais bgsave ne bloquera pas Redis. Il déboursera un processus enfant et terminera la génération du fichier rdb dans le processus enfant.

Il existe plusieurs situations en mode automatique, comme suit :

  • L'opération de modification de la clé actuelle répond aux exigences de configuration de Rdb dans redis

  • Lorsque le nœud maître-esclave effectue une réplication complète

  • Lorsque Redis est redémarré ou arrêté (le mode de persistance Redis est RDB)

Ici, nous nous concentrons sur la configuration associée de rdb.

Le répertoire dans lequel le fichier rdb est enregistré est déterminé par l'élément de configuration dir

# rdb文件保存目录
dir "/usr/local/redis/var"

Le nom du fichier est déterminé par dbfilename

dbfilename "dump.rdb"

Le mécanisme de déclenchement est déterminé par la sauvegarde item

save 900 1
save 300 10
save 60 10000

La signification de la configuration ci-dessus est qu'elle sera déclenchée lorsqu'il y aura une opération de modification dans les 900 secondes, elle sera déclenchée lorsqu'il y aura 10 opérations de modification dans les 300 secondes, et elle sera déclenchée lorsque il y a 10 000 opérations de modification en 60 secondes.

De plus, l'élément de configuration rdbcompression détermine s'il faut compresser le fichier rdb. La valeur par défaut est oui, ce qui signifie compression, qui est également la méthode recommandée.

Processus de génération de fichiers RDB

RDB pour la persistance des données Redis

Parce que la sauvegarde est presque abandonnée, Redis se déclenche automatiquement à l'aide de l'opération bgsave, nous introduisons donc ici uniquement le processus de bgsave.

  1. Lors de l'exécution de bgsave, s'il existe actuellement un processus enfant, redis se fermera directement sans effectuer les opérations suivantes. Sinon, poursuivez l'exécution.

  2. Le processus principal Redis déboursera un processus enfant. Redis sera bloqué pendant le fork, mais le temps est très court.

  3. Une fois le fork réussi, le processus principal Redis continue de faire ce qu'il doit faire.

  4. Le processus enfant génère un nouveau fichier RDB et remplace l'ancien fichier rdb.

  5. Lorsque l'opération de remplacement est terminée, le processus enfant en informera le processus parent, et le processus parent enregistrera les informations pertinentes de cette opération.

Scénarios d'application

Les fichiers RDB sont de petite taille et rapides à générer et à charger, mais la méthode de persistance rdb ne peut pas atteindre cette persistance en temps réel, ce qui peut facilement entraîner une perte de données dans des circonstances anormales. De plus, différentes versions des fichiers rdb peuvent être incompatibles.

Grâce à l'introduction ci-dessus, vous pouvez savoir que les fichiers RDB sont très adaptés à la sauvegarde de récupération après sinistre, comme la génération de fichiers RDB chaque matin. De plus, si les données stockées dans Redis ne sont pas trop importantes, comme l'utilisation de Redis pour la mise en cache et que la perte de certaines données n'a aucun impact, l'utilisation de RDB est généralement une meilleure solution.

Présentons une solution à un problème courant. Lorsque la partition où les données Redis sont stockées est presque pleine, comment écrire des données sur une autre partition sans arrêter Redis. Nous pouvons utiliser config set dir 'new partition directory' pour modifier le répertoire où le fichier rdb est stocké. Exécutez ensuite bgsave pour générer un nouveau fichier RDB dans le nouveau répertoire.

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