Répertoire d'articles
Le nom complet de RDB estRedis database.
- Comme son nom l'indique, RDB est une base de données Redis utilisée pour stocker des données.
- Par conséquent, grâce à la persistance RDB, les données stockées dans la mémoire Redis sont écrites dans le fichier RDB et enregistrées sur le disque pour obtenir la persistance.
- La caractéristique de Redis est qu'il peut conserver des données, c'est-à-dire écrire des données en mémoire sur le disque pour s'assurer qu'aucune donnée n'est perdue, et peut également charger des données du disque en mémoire.

Les opérations de Redis au début sont toutes basées sur la mémoire, donc les performances sont très élevées, mais une fois le programme fermé, les données sont perdues.
Par conséquent, nous devons écrire des données en mémoire sur le disque à des intervalles spécifiés, ce qui est Snapshot dans le jargon.
Lors de la restauration, le fichier d'instantané est écrit directement dans la mémoire.
C'est également l'une des principales différences entre Redis et Memcached, car Memcached n'a pas de capacité de persistance.
Pour la persistance des données de la mémoire Redis, Redis nous fournit les méthodes suivantes :
- Méthode d'instantané (RDB, Redis DataBase) : écrire des données de mémoire sur le disque sous forme binaire à un certain moment ;
- Ajouter uniquement le fichier (AOF, Append Only File), enregistrer toutes les commandes d'opération et les ajouter au fichier sous forme de texte ;
- La persistance hybride, une nouvelle méthode après Redis 4.0, la persistance hybride combine les avantages de RDB et AOF.Lors de l'écriture, écrivez d'abord les données actuelles au début du fichier sous la forme de RDB, puis enregistrez les commandes d'opération suivantes dans le fichier sous la forme d'AOF, ce qui peut non seulement assurer la vitesse de redémarrage de Redis, mais également réduire le risque de perte de données.
Parce que chaque schéma de persistance a des scénarios d'utilisation spécifiques.
Mode de fonctionnement de la persistance des données de la mémoire Redis RDB
- RDB (Redis DataBase) est le processus d'écriture d'un instantané de la mémoire (Snapshot) à un certain moment sur le disque sous forme binaire.
- Les instantanés de mémoire sont ce que nous avons dit ci-dessus.Il fait référence à l'enregistrement d'état des données en mémoire à un certain moment.
- Ceci est similaire à la prise d'une photo. Lorsque vous prenez une photo d'un ami, une photo peut enregistrer instantanément toutes les images de l'ami.
- Il existe deux façons de déclencher RDB : l'une est le déclenchement manuel et l'autre est le déclenchement automatique.
Déclencher manuellement le RDB
Il existe deux opérations pour déclencher manuellement la persistance :saveetbgsave.
La principale différence entre eux est de bloquer ou non l'exécution du thread principal Redis.
1. enregistrer la commande
L'exécution de la commande de sauvegarde côté client déclenchera la persistance de Redis, mais cela mettra également Redis dans un état bloquant. Il ne répondra pas aux commandes envoyées par d'autres clients tant que le RDB n'est pas persistant, il doit donc être utilisé avec prudence dans l'environnement de fabrication.
127.0.0.1:6379> save OK 127.0.0.1:6379>
Le processus d'exécution de la commande est illustré dans la figure
2. commande bgsave
- bgsave (sauvegarde en arrière-plan) est une sauvegarde en arrière-plan.
- La plus grande différence entre elle et la commande save est que bgsave créera un processus enfant pour effectuer la persistance.
- L'ensemble du processus ne se produit que lorsque le processus enfant est fork.Il n'y a qu'un bref blocage.
- Une fois le processus enfant créé, le processus principal de Redis peut répondre aux demandes d'autres clients.
en bloquant tout le processussavepar rapport à la commandebgsaveLa commande est évidemment plus appropriée pour nous.
127.0.0.1:6379> bgsave Background Saving started # 提示开始后台保存 127.0.0.1:6379>
Déclencher automatiquement RDB
Après avoir parlé du déclenchement manuel, intéressons-nous au déclenchement automatique.On peut paramétrer les conditions de déclenchement automatique dans le fichier de configuration.
1. économiser mn
- save mn signifie qu'en m secondes, si n clés changent, la persistance est automatiquement déclenchée.Les paramètres m et n se trouvent dans le fichier de configuration Redis.
- Par exemple, save 60 1 signifie que dans les 60 secondes, tant qu'une clé change, la persistance RDB sera déclenchée.
- L'essence du déclenchement automatique de la persistance est que si les conditions de déclenchement définies sont remplies, Redis exécutera automatiquement la commande bgsave une fois.
Remarque : lorsque plusieurs commandes save mn sont définies, n'importe quelle condition déclenchera la persistance.
Par exemple, nous définissons les deux commandes save mn suivantes :
save 60 10 save 600 20
- Lorsque la valeur de la clé Redis change 60 fois en 10 s, la persistance est déclenchée ;
- Si la clé Redis change dans les 60 s et si la valeur change moins de 10 fois, alors Redis déterminera si la clé Redis a été modifiée au moins 600 fois dans les 20 s et, le cas échéant, déclenchera la persistance.
2. Chasse d'eau
- La commande flushall est utilisée pour vider la base de données Redis.
- Il doit être utilisé avec prudence dans un environnement de production.
- Lorsque Redis exécute la commande flushall, il déclenche la persistance automatique et efface le fichier RDB.
3. Déclencheur de synchronisation maître-esclave
Dans la réplication maître-esclave Redis, lorsque le nœud esclave effectue une opération de réplication complète, le nœud maître exécute la commande bgsave pour envoyer le fichier RDB au nœud esclave. Ce processus déclenche automatiquement la persistance Redis.
Redis peut interroger les paramètres de configuration actuels via des commandes.
Le format de la commande de requête est :config get xxx
Par exemple, si vous souhaitez obtenir le paramètre de nom de stockage d'un fichier RDB, vous pouvez utiliser config get dbfilename .
L'effet d'exécution est le suivant :
127.0.0.1:6379> config get dbfilename 1) "dbfilename" 2) "dump.rdb"
Étant donné que le serveur Redis se bloquera lors du chargement du fichier RDB jusqu'à ce que le chargement soit terminé, cela peut durer longtemps et le site Web ne sera pas accessible.
Si vous souhaitez supprimer manuellement le fichier de cache RDB dump.rdb de Redis, vous pouvez utiliser la commande suivante pour trouver le chemin de stockage du fichier dump.rdb▼
find / -name dump.rdb
- Ensuite, supprimez manuellement le fichier cache dump.rdb via SSH.
Redis définit la configuration de RDB
En ce qui concerne le paramétrage de la configuration de RDB, vous pouvez utiliser les deux méthodes suivantes :
- Modifier manuellement le fichier de configuration Redis
- Utilisez les paramètres de ligne de commande, config set dir "/usr/data" est la commande de stockage pour modifier le fichier RDB
Remarque : La configuration dans redis.conf peut être obtenue via config get xxx et modifiée via config set xxx value, et la méthode de modification manuelle du fichier de configuration Redis est globalement efficace, c'est-à-dire que les paramètres définis en redémarrant le serveur Redis ne seront pas être perdu, mais modifié à l'aide de la commande , il sera perdu après le redémarrage de Redis.
Toutefois, si vous souhaitez modifier manuellement le fichier de configuration Redis pour qu'il prenne effet immédiatement, vous devez redémarrer le serveur Redis et la méthode de commande ne nécessite pas de redémarrer le serveur Redis.
Récupération de fichiers RDB
Lorsque le serveur Redis démarre, si le fichier RDB dump.rdb existe dans le répertoire racine Redis, Redis charge automatiquement le fichier RDB pour restaurer les données persistantes.
S'il n'y a pas de fichier dump.rdb dans le répertoire racine, veuillez d'abord déplacer le fichier dump.rdb vers le répertoire racine de Redis.
Bien sûr, il existe des informations de journal au démarrage de Redis, qui indiqueront si le fichier RDB est chargé.
Le serveur Redis se bloque lors du chargement du fichier RDB jusqu'à ce que le chargement soit terminé.
Nous savons maintenant que la persistance RDB est divisée en deux méthodes : le déclenchement manuel et le déclenchement automatique :
- Son avantage est que le fichier de stockage est petit et que la récupération des données est plus rapide au démarrage de Redis.
- L'inconvénient est qu'il existe un risque de perte de données.
La récupération des fichiers RDB est également très simple. Il suffit de placer les fichiers RDB dans le répertoire racine de Redis, et Redis chargera et restaurera automatiquement les données au démarrage.
Avantages et inconvénients de RDB
1) Avantages RDB
Le contenu RDB est constitué de données binaires, occupe moins de mémoire, est plus compact et convient mieux comme fichier de sauvegarde.
RDB est très utile pour la reprise après sinistre, c'est un fichier compressé qui peut être transféré plus rapidement vers un serveur distant pour la reprise du service Redis ;
RDB peut grandement améliorer la vitesse de Redis, car le processus Redis principal créera un processus enfant pour conserver les données sur le disque.
Le processus principal Redis n'effectue pas d'opérations telles que les E/S de disque ;
Par rapport aux fichiers au format AOF, les fichiers RDB redémarrent plus rapidement.
2) Inconvénients de RDB
Étant donné que RDB ne peut enregistrer les données qu'à un certain intervalle de temps, si le service Redis est accidentellement interrompu au milieu, les données Redis seront perdues pendant un certain temps ;
Un processus dans lequel RDB nécessite des fourches fréquentes pour le conserver sur le disque à l'aide d'une sous-entrée.
Si l'ensemble de données est volumineux, le fork peut prendre du temps, et si l'ensemble de données est volumineux, les performances du processeur sont médiocres, ce qui peut empêcher Redis de servir les clients pendant quelques millisecondes, voire une seconde.
Bien sûr, nous pouvons également désactiver la persistance pour améliorer l'efficacité d'exécution de Redis.
Si vous n'êtes pas sensible à la perte de données, vous pouvez le faire lorsque le client se connecte config set save "" Commande pour désactiver la persistance pour Redis.
Dans redis.conf, si danssaveCommentez toutes les configurations au début, et la persistance sera également désactivée, mais cela n'est généralement pas fait.
J'espère que le blog de Chen Weiliang ( https://www.chenweiliang.com/ ) partagé "Quel est le nom complet de Redis RDB ? Redis RDB In-Memory Data Persistence Operation Mode, qui vous est utile.
Bienvenue à partager le lien de cet article :https://www.chenweiliang.com/cwl-26677.html
Pour débloquer plus d'astuces cachées🔑, bienvenue sur notre chaîne Telegram !
Partagez et likez si vous aimez ! Vos partages et vos likes sont notre motivation continue !