


En savoir plus sur la méthode d'instantané (RDB) dans la persistance Redis
Cet article vous présentera la méthode snapshot (RDB) dans la persistance Redis. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Redis lit et écrit en mémoire, ses performances sont donc élevées, mais les données en mémoire seront perdues au redémarrage du serveur Afin de garantir les données sans les perdre, nous devons stocker les données dans la mémoire sur le disque afin que les données d'origine puissent être restaurées à partir du disque au redémarrage de Redis. L'ensemble du processus est appelé persistance Redis.
La persistance de Redis est également l'une des principales différences entre Redis et Memcached, car Memcached n'a pas de fonction de persistance.
1. Plusieurs méthodes de persistance
La persistance Redis a les trois méthodes suivantes :
- Méthode Snapshot (RDB, Redis DataBase) écrit le les données de la mémoire à un moment donné sur le disque sous forme binaire ;
- Méthode d'ajout de fichier (AOF, Append Only File) enregistre toutes les commandes d'opération et les écrit sous forme de texte Ajouter au fichier dans le form;
- Méthode de persistance hybride, une nouvelle méthode après Redis 4.0. La persistance hybride combine les avantages de RDB et d'AOF. Lors de l'écriture, écrivez d'abord les données actuelles au début du fichier. sous forme de RDB, puis stocker les commandes d'opération ultérieures dans le fichier au format AOF. Cela peut non seulement garantir la vitesse de redémarrage de Redis, mais également réduire le risque de perte de données.
Étant donné que chaque solution de persistance a des scénarios d'utilisation spécifiques, commençons par la persistance RDB.
2. Introduction à RDB
RDB (Redis DataBase) est le processus d'écriture d'un instantané de mémoire (Snapshot) à un moment donné sur le disque sous forme binaire.
3. Déclenchement de persistance
Il existe deux types de méthodes de déclenchement de persistance pour RDB : l'une est le déclenchement manuel et l'autre est le déclenchement automatique.
1) Déclenchement manuel
Il existe deux opérations pour déclencher manuellement la persistance : save
et bgsave
Leur principale différence se reflète dans : le blocage ou non de l'exécution du thread principal Redis. .
① save command
L'exécution de la commande save
dans le client déclenchera la persistance de Redis, mais elle mettra également Redis dans un état de blocage jusqu'à ce que la persistance RDB soit terminée. commandes envoyées par d'autres clients, donc doit être utilisé avec prudence dans un environnement de production. La commande
save
est utilisée comme suit :
Comme le montre l'image, une fois la commande save
exécutée, la persistance file dump.rdb
L'heure de modification change, ce qui signifie save
a déclenché avec succès la persistance RDB.
save
Le processus d'exécution de la commande est tel qu'illustré dans la figure ci-dessous :
② commande bgsave
bgsave (sauvegarde en arrière-plan) est un moyen de sauvegarde en arrière-plan, la plus grande différence entre elle et la commande save
est que bgsave
fork() un processus enfant pour effectuer la persistance. Dans l'ensemble du processus, il n'y a qu'un court blocage lorsque fork() l'enfant. process.Une fois le processus enfant créé, le processus principal de Redis peut répondre aux demandes d'autres clients. Par rapport à la commande save
qui bloque l'ensemble du processus, la commande bgsave
est évidemment plus adaptée à notre utilisation. La commande bgsave
est utilisée comme indiqué dans la figure ci-dessous :
bgsave
Le processus d'exécution est tel qu'indiqué dans la figure ci-dessous :
2) Déclenchement automatique
Après avoir parlé de la méthode de déclenchement manuel de RDB, voyons comment déclencher automatiquement la persistance RDB ?
La persistance automatique RDB provient principalement des situations suivantes.
① save m n
save m n
signifie que si n touches changent en m secondes, la persistance sera automatiquement déclenchée.
Les paramètres m et n se trouvent dans le fichier de configuration Redis. Par exemple, save 60 1
indique que si au moins une clé change dans les 60 secondes, la persistance RDB sera déclenchée.
Déclenche automatiquement la persistance. L'essentiel est que Redis exécutera automatiquement la commande bgsave
une fois si les conditions de déclenchement définies sont remplies.
Remarque : lors de la définition de plusieurs commandes de sauvegarde m n, la persistance sera déclenchée si une condition est remplie.
Par exemple, nous avons configuré les deux commandes save m n suivantes :
- enregistrer 60 10
- enregistrer 600 1
Lorsque la valeur de la clé Redis change 10 fois dans les 60 secondes, la persistance sera déclenchée si la valeur de la clé Redis change dans les 60 secondes ; Si la valeur de la clé a changé moins de 10 fois, Redis déterminera si la valeur de la clé de Redis a été modifiée au moins une fois en 600 secondes. Si tel est le cas, la persistance sera déclenchée. La commande
② flushall
flushall
est utilisée pour effacer la base de données Redis. Elle doit être utilisée avec prudence dans un environnement de production. Lorsque Redis exécute la commande flushall
, la persistance automatique sera effectuée. être déclenchés. Les fichiers RDB sont effacés.
Le résultat de l'exécution est présenté dans la figure ci-dessous :
③ La synchronisation maître-esclave se déclenche
Dans la réplication maître-esclave Redis, lorsque l'esclave Le nœud effectue une opération de réplication complète, le nœud maître exécutera la commande bgsave
et enverra le fichier RDB au nœud esclave. Ce processus déclenchera automatiquement la persistance Redis.
4. Instructions de configuration
Définir correctement la configuration RDB peut garantir le fonctionnement efficace et stable de Redis. Jetons un coup d'œil aux éléments de configuration de RDB ?
Les paramètres de configuration RDB peuvent être trouvés dans le fichier de configuration Redis. Le contenu spécifique est le suivant :
# RDB 保存的条件 save 900 1 save 300 10 save 60 10000 # bgsave 失败之后,是否停止持久化数据到磁盘,yes 表示停止持久化,no 表示忽略错误继续写文件。 stop-writes-on-bgsave-error yes # RDB 文件压缩 rdbcompression yes # 写入文件和读取文件时是否开启 RDB 文件检查,检查是否有无损坏,如果在启动是检查发现损坏,则停止启动。 rdbchecksum yes # RDB 文件名 dbfilename dump.rdb # RDB 文件目录 dir ./
Les paramètres les plus importants sont les suivants. suit :
① paramètre de sauvegarde
Il est utilisé pour configurer les paramètres qui déclenchent les conditions de persistance RDB. Lorsque les conditions de sauvegarde sont remplies, les données seront conservées sur le disque dur.
La description de la configuration par défaut est la suivante :
- save 900 1 : Indique que si au moins une valeur de clé change dans les 900 secondes, les données seront conservées sur le disque dur ;
- save 300 10 : Indique que si au moins 10 valeurs clés changent dans les 300 secondes, les données seront conservées sur le disque dur
- save 60 10000 : Indique que si au moins 10 000 valeurs clés ; changez dans les 60 secondes, les données seront conservées sur le disque dur.
② paramètre rdbcompression
La valeur par défaut est yes
ce qui signifie activer la compression des fichiers RDB, Redis utilisera l'algorithme LZF pour la compression. Si vous ne souhaitez pas consommer les performances du processeur pour la compression des fichiers, vous pouvez le configurer pour désactiver cette fonction. L'inconvénient est qu'elle nécessite plus d'espace disque pour enregistrer les fichiers.
③ Paramètre rdbchecksum
Sa valeur par défaut est yes
qui indique s'il faut activer la vérification des fichiers RDB lors de l'écriture et de la lecture de fichiers, et vérifier s'il y a des dommages s'il est détecté au démarrage. , S'il est endommagé, arrêtez de démarrer.
5. Requête de configuration
Vous pouvez utiliser des commandes dans Redis pour interroger les paramètres de configuration actuels. 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 du fichier RDB, vous pouvez utiliser config get dbfilename
. L'effet d'exécution est le suivant :
.
Pour interroger le répertoire de fichiers de RDB, vous pouvez utiliser la commande config get dir
L'effet d'exécution est comme indiqué dans la figure ci-dessous :
- Modifiez manuellement le fichier de configuration Redis
- Utilisez les paramètres de ligne de commande, par exemple, utilisez
- Pour modifier le répertoire de stockage RDB.
config set dir "/usr/data"
Remarque : La méthode de modification manuelle du fichier de configuration Redis est globalement efficace, c'est-à-dire que le redémarrage des paramètres de configuration du serveur Redis ne sera pas perdu et l'utilisation de la méthode de modification de commande , redémarrez le Redis. Ensuite, il sera perdu. Cependant, si vous souhaitez modifier manuellement le fichier de configuration Redis pour qu'il prenne effet immédiatement, vous devez redémarrer le serveur Redis, mais la méthode de commande ne nécessite pas de redémarrer le serveur Redis.
Conseils : Le fichier de configuration Redis se trouve dans le chemin racine du répertoire d'installation Redis et le nom par défaut est redis.conf.
7.Récupération du fichier RDB
Lorsque le serveur Redis démarre, si le fichier RDB dump.rdb existe dans le répertoire racine de Redis, Redis chargera 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.
Vérifiez si le fichier RDB est chargé
Redis dispose d'informations de journal au démarrage, qui indiqueront si le fichier RDB est chargé. Nous exécutons la commande de démarrage Redis : src/redis-server redis.conf
, comme indiqué. dans la figure ci-dessous :
Comme le montre le journal, le service Redis a chargé le fichier RDB normalement au démarrage.
Conseils : pendant que le serveur Redis charge le fichier RDB, il sera bloqué jusqu'à ce que le travail de chargement soit terminé.
8. Avantages et inconvénients de RDB
1) Avantages de RDB
- Le contenu RDB est constitué de données binaires, prend moins de mémoire, est plus compact et est plus adapté. comme fichier de sauvegarde ;
- RDB est très utile pour la reprise après sinistre. Il s'agit d'un fichier compact qui peut être transféré plus rapidement vers le serveur distant pour la récupération du service Redis
- RDB peut améliorer Redis ; dans quelle mesure La vitesse d'exécution est due au fait que le processus principal Redis fork() un processus enfant à chaque fois qu'il est persistant pour conserver les données sur le disque. Le processus principal Redis n'effectuera pas d'opérations telles que les E/S sur disque et les fichiers AOF RDB peuvent être redémarrés plus rapidement que les fichiers au format.
- Étant donné que RDB ne peut enregistrer les données que pendant un certain intervalle de temps, si le service Redis est accidentellement interrompu à mi-chemin, les données pendant une période de du temps sera perdu. Les données Redis
- RDB nécessitent un fork() fréquent pour les conserver sur le disque à l'aide de processus enfants. Fork() peut prendre du temps si l'ensemble de données est volumineux et peut empêcher Redis de servir les clients pendant quelques millisecondes, voire une seconde si l'ensemble de données est volumineux et que les performances du processeur sont médiocres.
. La commande peut désactiver la persistance de Redis, comme le montre la figure ci-dessous : config set save ""
https://redis.io/topics/persistence
https://blog.csdn.net/ qq_36318234/article/details/79994133
https://www.cnblogs.com/ysocean/p/9114268.html
https://www.cnblogs. com/wdliu/p/9377278.html
Premiers pas avec Redis Tutorial .
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Le mode Redis Cluster déploie les instances Redis sur plusieurs serveurs grâce à la rupture, à l'amélioration de l'évolutivité et de la disponibilité. Les étapes de construction sont les suivantes: Créez des instances de redis étranges avec différents ports; Créer 3 instances Sentinel, Moniteur Redis Instances et basculement; Configurer les fichiers de configuration Sentinel, ajouter des informations d'instance Redis de surveillance et des paramètres de basculement; Configurer les fichiers de configuration d'instance Redis, activer le mode de cluster et spécifier le chemin du fichier d'informations de cluster; Créer un fichier nœuds.conf, contenant des informations de chaque instance redis; Démarrez le cluster, exécutez la commande CREATE pour créer un cluster et spécifiez le nombre de répliques; Connectez-vous au cluster pour exécuter la commande d'informations de cluster pour vérifier l'état du cluster; faire

Comment effacer les données Redis: utilisez la commande flushall pour effacer toutes les valeurs de clé. Utilisez la commande flushdb pour effacer la valeur clé de la base de données actuellement sélectionnée. Utilisez SELECT pour commuter les bases de données, puis utilisez FlushDB pour effacer plusieurs bases de données. Utilisez la commande del pour supprimer une clé spécifique. Utilisez l'outil Redis-CLI pour effacer les données.

Pour lire une file d'attente à partir de Redis, vous devez obtenir le nom de la file d'attente, lire les éléments à l'aide de la commande LPOP et traiter la file d'attente vide. Les étapes spécifiques sont les suivantes: Obtenez le nom de la file d'attente: Nommez-le avec le préfixe de "Fitre:" tel que "Fitre: My-Quyue". Utilisez la commande LPOP: éjectez l'élément de la tête de la file d'attente et renvoyez sa valeur, telle que la file d'attente LPOP: My-Queue. Traitement des files d'attente vides: si la file d'attente est vide, LPOP renvoie NIL et vous pouvez vérifier si la file d'attente existe avant de lire l'élément.

L'utilisation de la directive Redis nécessite les étapes suivantes: Ouvrez le client Redis. Entrez la commande (Verbe Key Value). Fournit les paramètres requis (varie de l'instruction à l'instruction). Appuyez sur Entrée pour exécuter la commande. Redis renvoie une réponse indiquant le résultat de l'opération (généralement OK ou -err).

L'utilisation des opérations Redis pour verrouiller nécessite l'obtention du verrouillage via la commande setnx, puis en utilisant la commande Expire pour définir le temps d'expiration. Les étapes spécifiques sont les suivantes: (1) Utilisez la commande setnx pour essayer de définir une paire de valeurs de clé; (2) Utilisez la commande Expire pour définir le temps d'expiration du verrou; (3) Utilisez la commande del pour supprimer le verrouillage lorsque le verrouillage n'est plus nécessaire.

La meilleure façon de comprendre le code source redis est d'aller étape par étape: familiarisez-vous avec les bases de Redis. Sélectionnez un module ou une fonction spécifique comme point de départ. Commencez par le point d'entrée du module ou de la fonction et affichez le code ligne par ligne. Affichez le code via la chaîne d'appel de fonction. Familiez les structures de données sous-jacentes utilisées par Redis. Identifiez l'algorithme utilisé par Redis.

Utilisez l'outil de ligne de commande redis (Redis-CLI) pour gérer et utiliser Redis via les étapes suivantes: Connectez-vous au serveur, spécifiez l'adresse et le port. Envoyez des commandes au serveur à l'aide du nom et des paramètres de commande. Utilisez la commande d'aide pour afficher les informations d'aide pour une commande spécifique. Utilisez la commande QUIT pour quitter l'outil de ligne de commande.

Sur CentOS Systems, vous pouvez limiter le temps d'exécution des scripts LUA en modifiant les fichiers de configuration Redis ou en utilisant des commandes Redis pour empêcher les scripts malveillants de consommer trop de ressources. Méthode 1: Modifiez le fichier de configuration Redis et localisez le fichier de configuration Redis: le fichier de configuration redis est généralement situé dans /etc/redis/redis.conf. Edit Fichier de configuration: Ouvrez le fichier de configuration à l'aide d'un éditeur de texte (tel que VI ou NANO): Sudovi / etc / redis / redis.conf Définissez le délai d'exécution du script LUA: Ajouter ou modifier les lignes suivantes dans le fichier de configuration pour définir le temps d'exécution maximal du script LUA (unité: millisecondes)
