Gestion de la persistance Redis

RedisBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, nous allons explorer la gestion de la persistance de Redis, en nous concentrant sur la manière de configurer et de gérer la durabilité des données. Nous commencerons par configurer la persistance RDB (Redis Database) à l'aide de la commande CONFIG SET, qui nous permet de créer des instantanés de nos données Redis à un moment donné. Nous aborderons également l'activation de la persistance AOF (Append-Only File), la sauvegarde manuelle des données, la vérification de la dernière heure de sauvegarde et la réécriture du fichier AOF pour optimiser sa taille.

Configurer la persistance RDB

Dans cette étape, nous allons configurer la persistance RDB (Redis Database). RDB crée des instantanés de votre jeu de données à des intervalles spécifiés. Nous utiliserons la commande CONFIG SET pour modifier la configuration du serveur Redis dynamiquement sans redémarrer le serveur.

Tout d'abord, connectez-vous au serveur Redis en utilisant l'interface en ligne de commande de Redis (redis-cli). Ouvrez votre terminal et exécutez la commande suivante :

redis-cli

Vous verrez l'invite redis-cli, qui ressemble à 127.0.0.1:6379>.

Vérifions la configuration actuelle de sauvegarde RDB à l'aide de la commande CONFIG GET.

CONFIG GET save

La sortie par défaut affiche plusieurs points de sauvegarde :

1) "save"
2) "900 1 300 10 60 10000"

Cela signifie que Redis sauvegardera la base de données si au moins 1 clé a été modifiée en 900 secondes, OU si au moins 10 clés ont été modifiées en 300 secondes, OU si au moins 10000 clés ont été modifiées en 60 secondes.

Maintenant, modifions cela pour un seul point de sauvegarde : sauvegarder la base de données si au moins 1 clé a été modifiée en 60 secondes.

CONFIG SET save "60 1"

Vous devriez voir OK comme sortie, confirmant le changement.

OK

Vérifiez que la configuration a été mise à jour :

CONFIG GET save

La sortie devrait maintenant refléter notre nouveau paramètre :

1) "save"
2) "60 1"

Ensuite, nous allons configurer le répertoire où Redis stocke son fichier RDB (dump.rdb). Tout d'abord, quittez redis-cli pour exécuter quelques commandes shell.

exit

Maintenant, créez un nouveau répertoire et définissez les permissions correctes. Le serveur Redis s'exécute en tant qu'utilisateur redis, il a donc besoin de la propriété du répertoire pour écrire des fichiers.

sudo mkdir -p /var/lib/redis/labex_data
sudo chown redis:redis /var/lib/redis/labex_data

Reconnectez-vous à Redis et définissez la configuration dir sur le nouveau chemin.

redis-cli
CONFIG SET dir /var/lib/redis/labex_data

Vous devriez voir OK. Vérifiez le changement :

CONFIG GET dir

La sortie confirmera le nouveau répertoire :

1) "dir"
2) "/var/lib/redis/labex_data"

Maintenant, Redis sauvegardera ses fichiers de persistance dans le répertoire /var/lib/redis/labex_data.

Pour vous assurer que votre progression est correctement sauvegardée et vérifiée, veuillez quitter la session redis-cli.

exit

Activer la persistance AOF

Dans cette étape, nous allons activer la persistance AOF (Append-Only File). AOF enregistre chaque opération d'écriture reçue par le serveur. Cela offre une meilleure durabilité que RDB car les données sont écrites dans le journal plus fréquemment.

Tout d'abord, connectez-vous au serveur Redis :

redis-cli

Vérifiez si AOF est actuellement activé en utilisant la commande CONFIG GET.

CONFIG GET appendonly

Par défaut, il est désactivé :

1) "appendonly"
2) "no"

Pour activer AOF, définissez le paramètre appendonly sur yes.

CONFIG SET appendonly yes

Vous verrez OK comme sortie. Maintenant, vérifiez le changement :

CONFIG GET appendonly

La sortie devrait confirmer que AOF est maintenant activé :

1) "appendonly"
2) "yes"

Avec AOF activé, Redis enregistrera toutes les commandes d'écriture dans le fichier appendonly.aof situé dans le répertoire que nous avons configuré à l'étape précédente (/var/lib/redis/labex_data).

Ajoutons quelques données pour voir AOF en action. Cette commande SET sera écrite dans le fichier AOF.

SET mykey "myvalue"

Vous devriez voir la sortie suivante :

OK

Pour vous assurer que votre progression est correctement sauvegardée et vérifiée, veuillez quitter la session redis-cli.

exit

Sauvegarder manuellement les données avec SAVE

Dans cette étape, vous apprendrez comment déclencher manuellement un instantané RDB à l'aide de la commande SAVE. Bien que Redis sauvegarde automatiquement les données en fonction de votre configuration, une sauvegarde manuelle est utile pour créer des sauvegardes ou s'assurer que les données sont persistantes avant un événement de maintenance planifié.

Tout d'abord, connectez-vous au serveur Redis :

redis-cli

Ajoutons de nouvelles données pour avoir quelque chose à sauvegarder.

SET anotherkey "anothervalue"

Vous devriez voir la sortie suivante :

OK

Maintenant, déclenchez manuellement une sauvegarde sur disque à l'aide de la commande SAVE.

SAVE

La commande SAVE effectue une sauvegarde synchrone, ce qui signifie qu'elle bloquera toutes les autres requêtes client jusqu'à ce que l'opération de sauvegarde soit terminée. Pour les grandes bases de données, cela peut entraîner une pause notable.

Vous verrez OK une fois la sauvegarde terminée :

OK

Cela confirme que Redis a écrit avec succès l'ensemble de données actuel dans le fichier dump.rdb dans le répertoire /var/lib/redis/labex_data. Pour les environnements de production, la commande non bloquante BGSAVE est généralement préférée.

Pour vous assurer que votre progression est correctement sauvegardée et vérifiée, veuillez quitter la session redis-cli.

exit

Vérifier la dernière heure de sauvegarde avec LASTSAVE

Dans cette étape, nous utiliserons la commande LASTSAVE pour vérifier l'horodatage de la dernière sauvegarde RDB réussie. Cette commande est utile pour surveiller et vérifier que votre stratégie de persistance fonctionne comme prévu.

Tout d'abord, connectez-vous au serveur Redis :

redis-cli

Pour obtenir l'horodatage de la dernière sauvegarde réussie, exécutez la commande LASTSAVE.

LASTSAVE

La commande renvoie un horodatage Unix, qui est le nombre de secondes écoulées depuis le 1er janvier 1970 (UTC). La sortie ressemblera à ceci, bien que le nombre soit différent pour vous :

(integer) 1678886400

Cet horodatage correspond au moment où vous avez exécuté la commande SAVE à l'étape précédente.

Voyons la mise à jour de l'horodatage. Nous ajouterons plus de données, effectuerons une autre sauvegarde manuelle, puis vérifierons à nouveau l'heure de la dernière sauvegarde.

SET anotherkey2 "anothervalue2"
SAVE
LASTSAVE

Après avoir exécuté ces commandes, vous verrez un nouvel horodatage plus récent renvoyé par la deuxième commande LASTSAVE, confirmant qu'un nouvel instantané a été créé.

Pour vous assurer que votre progression est correctement sauvegardée et vérifiée, veuillez quitter la session redis-cli.

exit

Réécrire l'AOF avec BGREWRITEAOF

Dans cette étape, nous apprendrons comment réécrire le fichier AOF à l'aide de la commande BGREWRITEAOF. Au fur et à mesure que votre application s'exécute, le fichier AOF grossit. Il peut contenir de nombreuses commandes redondantes (par exemple, incrémenter un compteur plusieurs fois). La réécriture du fichier AOF crée un nouveau fichier compact avec l'ensemble minimal de commandes nécessaires pour reconstruire l'ensemble de données actuel, ce qui peut améliorer considérablement les temps de démarrage de Redis.

Tout d'abord, connectez-vous au serveur Redis :

redis-cli

Pour démontrer l'effet de la réécriture, effectuons quelques opérations qui ajouteront des commandes inutiles au journal AOF.

SET key1 "value1"
SET key2 "value2"
DEL key1
SET key3 "value3"

Le fichier AOF contient maintenant quatre commandes. Cependant, pour reconstruire l'état actuel, nous n'avons besoin que de définir key2 et key3. Les commandes relatives à key1 sont redondantes.

Maintenant, déclenchez une réécriture en arrière-plan du fichier AOF.

BGREWRITEAOF

Vous verrez un message de confirmation indiquant que le processus a démarré :

Background append only file rewriting started

Redis effectue cette opération en arrière-plan, de sorte qu'elle ne bloque pas les requêtes client. Il crée un fichier AOF temporaire, y écrit l'ensemble de données actuel de la manière la plus efficace, puis remplace atomiquement l'ancien fichier AOF par le nouveau.

Une fois la réécriture terminée, le fichier appendonly.aof sera plus petit et ne contiendra que les commandes pour définir key2 et key3.

Pour vous assurer que votre progression est correctement sauvegardée et vérifiée, veuillez quitter la session redis-cli.

exit

Résumé

Dans ce laboratoire, vous avez appris les bases de la gestion de la persistance Redis. Vous avez pratiqué la configuration des mécanismes de persistance RDB et AOF à l'aide de CONFIG SET. Vous avez également appris à effectuer des sauvegardes manuelles de données avec la commande SAVE, à vérifier l'heure de la dernière sauvegarde avec LASTSAVE, et à optimiser le fichier AOF avec BGREWRITEAOF. Ces compétences sont essentielles pour garantir la durabilité des données et maintenir une instance Redis saine.