Gestion avancée des clés Redis

RedisBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous explorerez des techniques avancées de gestion des clés dans Redis. Vous commencerez par apprendre à renommer des clés à l'aide de la commande RENAME, en vous connectant au serveur Redis via redis-cli, en définissant une paire clé-valeur, puis en la renommant, tout en vérifiant le changement au fur et à mesure.

Ensuite, vous découvrirez comment déplacer des clés entre différentes bases de données Redis à l'aide de la commande MOVE. Le laboratoire vous guidera à travers le processus de transfert d'une clé d'une base de données à une autre au sein de l'instance Redis. Le laboratoire couvre également la définition et la récupération de plusieurs clés, ainsi que l'itération efficace sur les clés.

Renommer une clé avec RENAME

Dans cette étape, vous apprendrez à renommer une clé dans Redis en utilisant la commande RENAME. Renommer des clés peut être utile pour diverses raisons, comme corriger des fautes de frappe, réorganiser vos données ou mettre à jour les noms des clés pour refléter les changements dans votre application.

Tout d'abord, connectons-nous au serveur Redis en utilisant l'interface de ligne de commande Redis (redis-cli). Ouvrez un terminal dans votre répertoire ~/project et tapez la commande suivante :

redis-cli

Vous devriez voir l'invite Redis : 127.0.0.1:6379>.

Maintenant, définissons une paire clé-valeur que nous pourrons renommer. Utilisez la commande SET pour créer une clé nommée mykey avec la valeur myvalue :

SET mykey myvalue

Vous devriez voir le résultat : OK.

Pour vérifier que la clé a été correctement définie, utilisez la commande GET :

GET mykey

Vous devriez voir le résultat : "myvalue".

Maintenant, renommons la clé mykey en newkey en utilisant la commande RENAME :

RENAME mykey newkey

Vous devriez voir le résultat : OK.

Pour vérifier que la clé a été renommée, essayez d'obtenir la valeur de l'ancienne clé (mykey) :

GET mykey

Vous devriez voir le résultat : (nil), ce qui signifie que la clé n'existe plus.

Maintenant, essayez d'obtenir la valeur de la nouvelle clé (newkey) :

GET newkey

Vous devriez voir le résultat : "myvalue", ce qui confirme que la clé a été renommée avec succès.

Enfin, renommons la clé newkey en mykey pour les étapes suivantes :

RENAME newkey mykey

Vous devriez voir le résultat : OK.

Vérifiez que la clé a bien été renommée :

GET mykey

Vous devriez voir le résultat : "myvalue".

Quittez redis-cli en tapant exit ou en appuyant sur Ctrl+D.

exit

Vous avez maintenant renommé avec succès une clé dans Redis en utilisant la commande RENAME.

Déplacer une clé entre les bases de données avec MOVE

Dans cette étape, vous apprendrez à déplacer une clé d'une base de données Redis à une autre en utilisant la commande MOVE. Redis prend en charge plusieurs bases de données logiques au sein d'une même instance. Par défaut, il existe 16 bases de données, numérotées de 0 à 15. La commande MOVE vous permet de transférer une clé de la base de données actuellement sélectionnée vers une autre.

Tout d'abord, assurez-vous d'être connecté au serveur Redis en utilisant l'interface de ligne de commande Redis (redis-cli). Ouvrez un terminal dans votre répertoire ~/project et tapez la commande suivante :

redis-cli

Vous devriez voir l'invite Redis : 127.0.0.1:6379>. Par défaut, vous êtes connecté à la base de données 0.

Nous avons déjà une clé nommée mykey avec la valeur myvalue dans la base de données 0 depuis l'étape précédente. Vérifions cela :

GET mykey

Vous devriez voir le résultat : "myvalue".

Maintenant, déplaçons la clé mykey de la base de données 0 vers la base de données 1 en utilisant la commande MOVE :

MOVE mykey 1

Vous devriez voir le résultat : (integer) 1, ce qui signifie que la clé a été déplacée avec succès.

Pour vérifier que la clé a été déplacée, essayez d'obtenir la valeur de la clé mykey dans la base de données 0 :

GET mykey

Vous devriez voir le résultat : (nil), ce qui signifie que la clé n'existe plus dans la base de données 0.

Maintenant, passez à la base de données 1 en utilisant la commande SELECT :

SELECT 1

Vous devriez voir le résultat : OK.

Maintenant, essayez d'obtenir la valeur de la clé mykey dans la base de données 1 :

GET mykey

Vous devriez voir le résultat : "myvalue", ce qui confirme que la clé a été déplacée avec succès vers la base de données 1.

Enfin, déplaçons la clé mykey vers la base de données 0 pour les étapes suivantes. Tout d'abord, revenez à la base de données 0 :

SELECT 0

Vous devriez voir le résultat : OK.

Maintenant, déplacez la clé mykey de la base de données 1 vers la base de données 0 :

MOVE mykey 0

Vous devriez voir le résultat : (error) ERR source and destination objects are the same.

Cette erreur se produit parce que vous avez fait SELECT 0 puis MOVE mykey 0 dans la même session. La commande MOVE ne peut pas déplacer une clé vers la base de données où elle se trouve déjà.

Pour déplacer une clé vers une base de données différente, vous devez d'abord sélectionner la base de données de destination, puis utiliser la commande MOVE.

Par exemple, sélectionnez d'abord la base de données 1 :

SELECT 1

Vous devriez voir le résultat : OK.

Maintenant, déplacez la clé mykey de la base de données 1 vers la base de données 0 :

MOVE mykey 0

Vous devriez voir le résultat : (integer) 1, ce qui signifie que la clé a été déplacée avec succès.

Maintenant, revenez à la base de données 0 :

SELECT 0

Vérifiez que la clé est de retour dans la base de données 0 :

GET mykey

Vous devriez voir le résultat : "myvalue".

Quittez redis-cli en tapant exit ou en appuyant sur Ctrl+D.

exit

Vous avez maintenant déplacé avec succès une clé entre les bases de données Redis en utilisant la commande MOVE.

Définir plusieurs clés avec MSET

Dans cette étape, vous apprendrez à définir plusieurs clés avec leurs valeurs correspondantes en une seule commande en utilisant la commande MSET dans Redis. C'est plus efficace que d'utiliser plusieurs commandes SET, car cela réduit le nombre d'allers-retours vers le serveur Redis.

Tout d'abord, assurez-vous d'être connecté au serveur Redis en utilisant l'interface de ligne de commande Redis (redis-cli). Si vous n'êtes pas déjà connecté, ouvrez un terminal dans votre répertoire ~/project et tapez la commande suivante :

redis-cli

Vous devriez voir l'invite Redis : 127.0.0.1:6379>.

Nous avons déjà une clé nommée mykey avec la valeur myvalue dans la base de données 0 depuis les étapes précédentes. Maintenant, définissons deux clés supplémentaires, key1 et key2, avec les valeurs value1 et value2 respectivement, en utilisant la commande MSET :

MSET key1 value1 key2 value2

Vous devriez voir le résultat : OK, ce qui signifie que les clés ont été définies avec succès.

Pour vérifier que les clés ont été correctement définies, utilisez la commande GET pour chaque clé :

GET key1

Vous devriez voir le résultat : "value1".

GET key2

Vous devriez voir le résultat : "value2".

Maintenant, définissons trois clés, y compris mykey, en utilisant MSET :

MSET mykey newvalue key3 value3 key4 value4

Vous devriez voir le résultat : OK.

Vérifiez les valeurs :

GET mykey

Vous devriez voir le résultat : "newvalue".

GET key3

Vous devriez voir le résultat : "value3".

GET key4

Vous devriez voir le résultat : "value4".

Quittez redis-cli en tapant exit ou en appuyant sur Ctrl+D.

exit

Vous avez maintenant défini avec succès plusieurs clés avec la commande MSET.

Récupérer plusieurs clés avec MGET

Dans cette étape, vous apprendrez à récupérer les valeurs de plusieurs clés en une seule commande en utilisant la commande MGET dans Redis. C'est plus efficace que d'utiliser plusieurs commandes GET, car cela réduit le nombre d'allers-retours vers le serveur Redis.

Tout d'abord, assurez-vous d'être connecté au serveur Redis en utilisant l'interface de ligne de commande Redis (redis-cli). Ouvrez un terminal dans votre répertoire ~/project et tapez la commande suivante :

redis-cli

Vous devriez voir l'invite Redis : 127.0.0.1:6379>.

Depuis l'étape précédente, nous avons les clés et valeurs suivantes :

  • mykey : newvalue
  • key1 : value1
  • key2 : value2
  • key3 : value3
  • key4 : value4

Maintenant, récupérons les valeurs de key1, key2 et mykey en utilisant la commande MGET :

MGET key1 key2 mykey

Vous devriez voir le résultat :

1) "value1"
2) "value2"
3) "newvalue"

Ce résultat affiche les valeurs des clés dans l'ordre où elles ont été spécifiées dans la commande MGET.

Maintenant, récupérons les valeurs de key3, key4 et d'une clé inexistante key5 en utilisant la commande MGET :

MGET key3 key4 key5

Vous devriez voir le résultat :

1) "value3"
2) "value4"
3) (nil)

Notez que la valeur pour la clé inexistante key5 est (nil).

Quittez redis-cli en tapant exit ou en appuyant sur Ctrl+D.

exit

Vous avez maintenant récupéré avec succès plusieurs clés avec la commande MGET.

Itérer efficacement sur les clés avec SCAN

Dans cette étape, vous apprendrez à itérer sur les clés dans Redis de manière efficace en utilisant la commande SCAN. Contrairement à la commande KEYS, qui peut bloquer le serveur lorsqu'elle est utilisée sur de grandes bases de données, SCAN est un itérateur basé sur un curseur qui récupère les clés par lots, minimisant ainsi l'impact sur les performances.

Tout d'abord, assurez-vous d'être connecté au serveur Redis en utilisant l'interface de ligne de commande Redis (redis-cli). Ouvrez un terminal dans votre répertoire ~/project et tapez la commande suivante :

redis-cli

Vous devriez voir l'invite Redis : 127.0.0.1:6379>.

Depuis les étapes précédentes, nous avons les clés suivantes :

  • mykey
  • key1
  • key2
  • key3
  • key4

La commande SCAN nécessite une valeur de curseur initiale, qui est généralement 0. Elle renvoie une nouvelle valeur de curseur pour l'itération suivante et une liste de clés trouvées lors de l'itération actuelle.

Commençons l'itération avec un curseur de 0 :

SCAN 0

Vous devriez voir un résultat similaire à celui-ci :

1) "0"
2) 1) "key2"
   2) "key3"
   3) "key4"
   4) "key1"
   5) "mykey"

Le premier élément du résultat ("0") est la valeur du curseur. Le second élément est un tableau des clés trouvées lors de cette itération. Comme le curseur renvoyé est 0, cela indique que l'itération est terminée et que nous avons récupéré toutes les clés en un seul scan.

Vous pouvez également utiliser l'option MATCH pour filtrer les clés en fonction d'un motif. Par exemple, pour trouver toutes les clés qui commencent par key, utilisez la commande suivante :

SCAN 0 MATCH key*

Vous devriez voir un résultat similaire à celui-ci :

1) "0"
2) 1) "key2"
   2) "key3"
   3) "key4"
   4) "key1"

Le curseur est "0", ce qui signifie que l'itération est terminée, et nous pouvons voir que seules les clés correspondant à notre motif "key*" sont renvoyées (à l'exclusion de "mykey").

Vous pouvez également utiliser l'option COUNT pour indiquer à Redis le nombre d'éléments que vous souhaitez récupérer en un seul appel. Notez qu'il ne s'agit que d'une indication, et Redis peut renvoyer plus ou moins d'éléments. Par exemple :

SCAN 0 COUNT 3

Vous devriez voir un résultat similaire à celui-ci :

1) "6"
2) 1) "key2"
   2) "key3"
   3) "key4"

Dans ce cas, nous obtenons une nouvelle valeur de curseur "6", indiquant qu'il y a plus de clés à scanner. Vous continueriez l'itération en utilisant cette nouvelle valeur de curseur jusqu'à ce que vous receviez un curseur de "0".

Quittez redis-cli en tapant exit ou en appuyant sur Ctrl+D.

exit

Vous avez maintenant itéré avec succès sur les clés dans Redis en utilisant la commande SCAN.

Résumé

Dans ce laboratoire, vous avez appris à effectuer des opérations avancées de gestion des clés dans Redis. Plus précisément, vous avez utilisé la commande RENAME pour renommer une clé, en modifiant son identifiant tout en préservant sa valeur associée. Vous vous êtes également exercé à vérifier le renommage réussi en récupérant la valeur en utilisant à la fois l'ancien et le nouveau nom de clé, confirmant ainsi l'existence et la valeur de la clé après l'opération. Enfin, vous avez renommé la clé avec son nom d'origine pour les étapes suivantes.

Le laboratoire a également introduit le concept des bases de données Redis et la commande MOVE, qui vous permet de transférer des clés entre ces bases de données logiques au sein d'une même instance Redis. Vous avez appris à utiliser la commande MSET pour définir efficacement plusieurs clés à la fois et la commande MGET pour récupérer leurs valeurs. Enfin, vous avez exploré la commande SCAN, un outil puissant pour itérer sur les clés dans de grandes bases de données sans bloquer le serveur.