Introduction aux Structures de Données Redis

RedisRedisBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce labo, vous explorerez les structures de données fondamentales de Redis et comment interagir avec elles en utilisant l'outil de ligne de commande redis-cli. Ce labo se concentre sur des exercices pratiques pour vous aider à comprendre comment stocker et récupérer des données dans Redis.

Vous commencerez par travailler avec les Strings (chaînes de caractères), en apprenant à définir (set), obtenir (get), vérifier l'existence et supprimer des valeurs de chaîne. Ensuite, vous passerez aux Lists (listes), en utilisant des commandes comme LPUSH et LRANGE. Puis, vous gérerez les Sets (ensembles) avec SADD et SMEMBERS. Enfin, vous explorerez les Hashes (tables de hachage) en utilisant HSET et HGET. Cette expérience pratique vous fournira une base solide pour utiliser Redis dans diverses applications.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") redis/RedisGroup -.-> redis/store_string("Set String Value") redis/RedisGroup -.-> redis/fetch_string("Get String Value") redis/RedisGroup -.-> redis/remove_key("Delete Single Key") redis/RedisGroup -.-> redis/add_left("Push List Left") redis/RedisGroup -.-> redis/fetch_range("Get List Range") redis/RedisGroup -.-> redis/insert_set("Add Set Element") redis/RedisGroup -.-> redis/view_set("List Set Members") subgraph Lab Skills redis/access_cli -.-> lab-552078{{"Introduction aux Structures de Données Redis"}} redis/store_string -.-> lab-552078{{"Introduction aux Structures de Données Redis"}} redis/fetch_string -.-> lab-552078{{"Introduction aux Structures de Données Redis"}} redis/remove_key -.-> lab-552078{{"Introduction aux Structures de Données Redis"}} redis/add_left -.-> lab-552078{{"Introduction aux Structures de Données Redis"}} redis/fetch_range -.-> lab-552078{{"Introduction aux Structures de Données Redis"}} redis/insert_set -.-> lab-552078{{"Introduction aux Structures de Données Redis"}} redis/view_set -.-> lab-552078{{"Introduction aux Structures de Données Redis"}} end

Travailler avec les Strings pour des Données Simples

Dans cette étape, nous allons explorer comment utiliser Redis pour stocker et récupérer des données de type string (chaîne de caractères) simples. Redis est souvent utilisé comme cache ou comme simple magasin clé-valeur (key-value store), et les strings sont le type de données le plus basique qu'il offre.

Tout d'abord, connectons-nous au serveur Redis en utilisant l'outil de ligne de commande redis-cli. Ouvrez un terminal dans la VM LabEx. Vous devriez déjà être dans le répertoire ~/project.

Tapez la commande suivante pour vous connecter au serveur Redis :

redis-cli

Vous devriez voir une invite qui ressemble à ceci :

127.0.0.1:6379>

Cela indique que vous êtes maintenant connecté au serveur Redis.

Maintenant, définissons une simple valeur de type string. Nous allons utiliser la commande SET. La commande SET prend deux arguments : la clé (key) et la valeur (value). Définissons une clé appelée mykey avec la valeur Hello Redis :

SET mykey "Hello Redis"

Vous devriez voir la sortie suivante :

OK

Cela signifie que la valeur a été définie avec succès.

Maintenant, récupérons la valeur en utilisant la commande GET. La commande GET prend un argument : la clé. Récupérons la valeur de mykey :

GET mykey

Vous devriez voir la sortie suivante :

"Hello Redis"

Cela confirme que nous avons réussi à stocker et à récupérer une valeur de type string dans Redis.

Essayons un autre exemple. Cette fois, stockons un nombre sous forme de string.

SET counter 100
GET counter

Vous devriez voir :

"100"

Redis traite cela comme une string, même si cela représente un nombre.

Vous pouvez également utiliser la commande EXISTS pour vérifier si une clé existe.

EXISTS mykey

Vous devriez voir :

(integer) 1

Cela indique que la clé mykey existe. Si la clé n'existe pas, la commande renverra (integer) 0.

Enfin, supprimons la clé en utilisant la commande DEL.

DEL mykey

Vous devriez voir :

(integer) 1

Cela indique que la clé mykey a été supprimée avec succès.

Maintenant, si vous essayez de récupérer la valeur de mykey à nouveau :

GET mykey

Vous devriez voir :

(nil)

Cela confirme que la clé a été supprimée.

N'oubliez pas de quitter redis-cli pour vous assurer que vos commandes sont enregistrées. Tapez :

exit

Cela vous ramènera à l'invite de terminal habituelle.

Utiliser les Lists avec LPUSH et LRANGE

Dans cette étape, nous allons explorer comment utiliser les lists (listes) Redis pour stocker et récupérer des collections de données ordonnées. Les lists Redis sont implémentées sous forme de linked lists (listes chaînées), ce qui les rend efficaces pour ajouter et supprimer des éléments au début ou à la fin de la liste. Nous nous concentrerons sur les commandes LPUSH et LRANGE.

Nous allons continuer à utiliser l'outil de ligne de commande redis-cli. Si vous n'êtes pas déjà connecté, ouvrez un terminal dans la VM LabEx et tapez :

redis-cli

Maintenant, créons une liste et ajoutons-y des éléments en utilisant la commande LPUSH. LPUSH ajoute des éléments à gauche (en tête) de la liste. La commande LPUSH prend deux arguments ou plus : la clé (key) de la liste et la ou les valeurs (value(s)) à ajouter. Créons une liste appelée mylist et ajoutons les valeurs item1, item2 et item3 :

LPUSH mylist item1

Vous devriez voir la sortie suivante :

(integer) 1

Cela signifie qu'un élément a été ajouté à la liste. La valeur de retour de LPUSH est la longueur de la liste après l'opération.

Maintenant, ajoutons les autres éléments :

LPUSH mylist item2
(integer) 2
LPUSH mylist item3
(integer) 3

Maintenant, récupérons les éléments de la liste en utilisant la commande LRANGE. LRANGE renvoie une plage (range) d'éléments de la liste. La commande LRANGE prend trois arguments : la clé de la liste, l'index de début (start index) et l'index de fin (end index). Les indices sont basés sur zéro, donc le premier élément est à l'index 0. Pour récupérer tous les éléments de la liste, nous pouvons utiliser l'index de début 0 et l'index de fin -1.

LRANGE mylist 0 -1

Vous devriez voir la sortie suivante :

1) "item3"
2) "item2"
3) "item1"

Notez que les éléments sont renvoyés dans l'ordre inverse de celui dans lequel nous les avons ajoutés, car LPUSH ajoute des éléments au début de la liste.

Ajoutons quelques éléments supplémentaires à la liste :

LPUSH mylist item4
LPUSH mylist item5

Maintenant, récupérons les 3 premiers éléments de la liste (indices 0 à 2) :

LRANGE mylist 0 2

Vous devriez voir :

1) "item5"
2) "item4"
3) "item3"

Vous pouvez également utiliser des indices négatifs pour accéder aux éléments à partir de la fin de la liste. Par exemple, pour récupérer le dernier élément de la liste, vous pouvez utiliser l'index -1 :

LRANGE mylist -1 -1

Vous devriez voir :

1) "item1"

N'oubliez pas de quitter redis-cli pour vous assurer que vos commandes sont enregistrées. Tapez :

exit

Cela vous ramènera à l'invite de terminal habituelle.

Gérer les Sets avec SADD et SMEMBERS

Dans cette étape, nous allons explorer comment utiliser les sets (ensembles) Redis pour stocker et gérer des collections non ordonnées d'éléments uniques. Les sets Redis sont utiles pour des tâches telles que le suivi des visiteurs uniques, le stockage de tags (étiquettes) ou la gestion des relations entre les objets. Nous nous concentrerons sur les commandes SADD et SMEMBERS.

Nous allons continuer à utiliser l'outil de ligne de commande redis-cli. Si vous n'êtes pas déjà connecté, ouvrez un terminal dans la VM LabEx et tapez :

redis-cli

Maintenant, créons un set et ajoutons-y des membres en utilisant la commande SADD. SADD ajoute un ou plusieurs membres à un set. La commande SADD prend deux arguments ou plus : la clé (key) du set et le(s) membre(s) à ajouter. Créons un set appelé myset et ajoutons les membres member1, member2 et member3 :

SADD myset member1

Vous devriez voir la sortie suivante :

(integer) 1

Cela signifie qu'un membre a été ajouté au set. La valeur de retour de SADD est le nombre de membres qui ont été ajoutés au set (à l'exclusion des membres qui étaient déjà présents).

Maintenant, ajoutons les autres éléments :

SADD myset member2
(integer) 1
SADD myset member3
(integer) 1

Maintenant, récupérons les membres du set en utilisant la commande SMEMBERS. SMEMBERS renvoie tous les membres du set. La commande SMEMBERS prend un argument : la clé du set.

SMEMBERS myset

Vous devriez voir la sortie suivante (l'ordre des membres peut varier, car les sets ne sont pas ordonnés) :

1) "member3"
2) "member2"
3) "member1"

Essayons d'ajouter un membre en double au set :

SADD myset member1

Vous devriez voir :

(integer) 0

Cela indique qu'aucun nouveau membre n'a été ajouté, car member1 était déjà dans le set.

Ajoutons quelques membres supplémentaires au set :

SADD myset member4
SADD myset member5

Maintenant, récupérons à nouveau tous les membres :

SMEMBERS myset

Vous devriez voir quelque chose comme :

1) "member5"
2) "member4"
3) "member3"
4) "member2"
5) "member1"

L'ordre peut être différent.

N'oubliez pas de quitter redis-cli pour vous assurer que vos commandes sont enregistrées. Tapez :

exit

Cela vous ramènera à l'invite de terminal habituelle.

Explorer les Hashes avec HSET et HGET

Dans cette étape, nous allons explorer comment utiliser les hashes (tables de hachage) Redis pour stocker et récupérer des collections de paires champ-valeur (field-value pairs). Les hashes Redis sont utiles pour représenter des objets avec plusieurs attributs. Nous nous concentrerons sur les commandes HSET et HGET.

Nous allons continuer à utiliser l'outil de ligne de commande redis-cli. Si vous n'êtes pas déjà connecté, ouvrez un terminal dans la VM LabEx et tapez :

redis-cli

Maintenant, créons un hash et ajoutons-y des champs et des valeurs en utilisant la commande HSET. HSET définit la valeur d'un champ dans un hash. La commande HSET prend trois arguments : la clé (key) du hash, le champ (field), et la valeur (value). Créons un hash appelé myhash et définissons le champ field1 à la valeur value1 :

HSET myhash field1 value1

Vous devriez voir la sortie suivante :

(integer) 1

Cela signifie qu'un nouveau champ a été ajouté au hash. La valeur de retour de HSET est 1 si le champ est nouveau dans le hash et 0 si le champ existe déjà et que la valeur a été mise à jour.

Maintenant, ajoutons un autre champ :

HSET myhash field2 value2
(integer) 1

Maintenant, récupérons la valeur d'un champ en utilisant la commande HGET. HGET obtient la valeur d'un champ dans un hash. La commande HGET prend deux arguments : la clé du hash et le champ. Récupérons la valeur de field1 dans myhash :

HGET myhash field1

Vous devriez voir la sortie suivante :

"value1"

Cela confirme que nous avons réussi à stocker et à récupérer une paire champ-valeur dans le hash.

Essayons de mettre à jour la valeur d'un champ existant :

HSET myhash field1 newvalue1

Vous devriez voir :

(integer) 0

Cela indique que le champ existait déjà et que sa valeur a été mise à jour.

Maintenant, récupérons à nouveau la valeur de field1 :

HGET myhash field1

Vous devriez voir :

"newvalue1"

Cela confirme que la valeur a été mise à jour.

Ajoutons quelques champs supplémentaires au hash :

HSET myhash field3 value3
HSET myhash field4 value4

N'oubliez pas de quitter redis-cli pour vous assurer que vos commandes sont enregistrées. Tapez :

exit

Cela vous ramènera à l'invite de terminal habituelle.

Résumé

Dans ce lab (TP), nous avons exploré les structures de données fondamentales de Redis, en commençant par les strings (chaînes de caractères). Nous avons appris à nous connecter à un serveur Redis en utilisant redis-cli, puis nous avons utilisé la commande SET pour stocker des valeurs de type string associées à des clés (keys). Nous avons ensuite récupéré ces valeurs en utilisant la commande GET. Nous avons également vu comment Redis traite les nombres stockés en tant que strings.

De plus, nous avons appris à créer et à manipuler des Lists (listes) en utilisant LPUSH et LRANGE, à gérer des Sets (ensembles) avec SADD et SMEMBERS, et à explorer des Hashes (tables de hachage) en utilisant HSET et HGET. Ces commandes vous permettent de stocker et de récupérer différents types de données dans Redis, ce qui en fait un outil polyvalent pour diverses applications. N'oubliez pas de quitter redis-cli après chaque étape pour vous assurer que vos commandes sont enregistrées pour vérification.