Dans ce labo, vous explorerez les opérations fondamentales des listes Redis. Vous apprendrez à gérer et à manipuler les données de liste à l'aide de commandes telles que LTRIM, LINSERT, LPOP, RPOP et BLPOP.
Plus précisément, vous vous entraînerez à tronquer (trimming) les listes à des plages spécifiques avec LTRIM, à insérer des éléments avant ou après des éléments existants à l'aide de LINSERT, à supprimer des éléments du début et de la fin des listes avec LPOP et RPOP respectivement, et à bloquer (blocking) jusqu'à ce qu'un élément soit disponible pour être retiré (pop) avec BLPOP. Ces opérations sont essentielles pour gérer efficacement les données stockées dans les listes Redis.
Tronquer une liste avec LTRIM
Dans cette étape, vous apprendrez à tronquer (trim) une liste Redis à l'aide de la commande LTRIM. LTRIM vous permet de spécifier une plage d'éléments dans une liste, en supprimant efficacement tous les éléments en dehors de cette plage. Ceci est utile pour gérer la taille de la liste et se concentrer sur des portions spécifiques de vos données.
Tout d'abord, connectez-vous au serveur Redis en utilisant la commande redis-cli dans votre terminal :
redis-cli
Maintenant, créons une liste nommée mylist et remplissons-la avec quelques valeurs. Exécutez la commande suivante dans redis-cli :
RPUSH mylist "one" "two" "three" "four" "five"
Vous devriez voir la sortie suivante :
(integer) 5
Cela indique que cinq éléments ont été ajoutés à la liste.
Maintenant, utilisons LTRIM pour ne conserver que les éléments de l'index 1 à l'index 3 (inclus). N'oubliez pas que les index des listes Redis sont basés sur zéro. Exécutez la commande suivante :
LTRIM mylist 1 3
La sortie sera :
OK
Cela signifie que l'opération LTRIM a réussi.
Pour vérifier le résultat, récupérons la liste entière en utilisant LRANGE. Exécutez la commande suivante :
LRANGE mylist 0 -1
Vous devriez voir la sortie suivante :
1) "two"
2) "three"
3) "four"
Comme vous pouvez le constater, seuls les éléments aux indices 1, 2 et 3 ("two", "three" et "four") restent dans la liste. Les éléments "one" et "five" ont été supprimés.
Enfin, quittez redis-cli en tapant exit et en appuyant sur Entrée. Cela garantit que vos commandes sont enregistrées.
exit
LTRIM est un outil puissant pour gérer la taille et le contenu de vos listes Redis. En spécifiant la plage souhaitée, vous pouvez supprimer efficacement les éléments indésirables et vous concentrer sur les données les plus importantes.
Insérer des éléments avec LINSERT
Dans cette étape, vous apprendrez à insérer des éléments dans une liste Redis à l'aide de la commande LINSERT. LINSERT vous permet d'insérer un nouvel élément soit avant, soit après un élément existant dans la liste. Ceci est utile pour maintenir l'ordre des éléments et ajouter de nouveaux éléments à des positions spécifiques.
En continuant à partir de l'étape précédente, nous devrions avoir une liste nommée mylist avec les éléments suivants : "two", "three" et "four".
Connectez-vous au serveur Redis en utilisant la commande redis-cli :
redis-cli
Maintenant, insérons l'élément "one" avant l'élément "two" dans la liste. Nous utilisons l'option BEFORE avec LINSERT. Exécutez la commande suivante :
LINSERT mylist BEFORE "two" "one"
Vous devriez voir la sortie suivante :
(integer) 4
Cela indique que la liste contient maintenant 4 éléments.
Pour vérifier le résultat, récupérons la liste entière en utilisant LRANGE. Exécutez la commande suivante :
LRANGE mylist 0 -1
Vous devriez voir la sortie suivante :
1) "one"
2) "two"
3) "three"
4) "four"
Comme vous pouvez le constater, l'élément "one" a été inséré avant "two".
Ensuite, insérons l'élément "five" après l'élément "four" dans la liste. Nous utilisons l'option AFTER avec LINSERT. Exécutez la commande suivante :
LINSERT mylist AFTER "four" "five"
La sortie sera :
(integer) 5
Cela signifie que l'opération LINSERT a réussi et que la liste contient maintenant 5 éléments.
Récupérons à nouveau la liste entière en utilisant LRANGE. Exécutez la commande suivante :
LRANGE mylist 0 -1
Vous devriez voir la sortie suivante :
1) "one"
2) "two"
3) "three"
4) "four"
5) "five"
Comme vous pouvez le constater, l'élément "five" a été inséré après "four".
Enfin, quittez redis-cli en tapant exit et en appuyant sur Entrée. Cela garantit que vos commandes sont enregistrées.
exit
LINSERT offre un contrôle précis sur l'endroit où les nouveaux éléments sont ajoutés à vos listes Redis, vous permettant de maintenir l'ordre et la structure souhaités de vos données.
Suppression d'éléments avec LPOP et RPOP
Dans cette étape, vous apprendrez à supprimer et à récupérer des éléments d'une liste Redis en utilisant les commandes LPOP et RPOP. LPOP supprime et renvoie le premier élément (le plus à gauche) de la liste, tandis que RPOP supprime et renvoie le dernier élément (le plus à droite) de la liste. Ces commandes sont utiles pour implémenter un comportement de type file d'attente (queue-like) ou pile (stack-like) avec les listes Redis.
En partant de l'étape précédente, nous devrions avoir une liste nommée mylist avec les éléments suivants : "one", "two", "three", "four" et "five".
Connectez-vous au serveur Redis en utilisant la commande redis-cli :
redis-cli
Maintenant, utilisons LPOP pour supprimer et récupérer le premier élément de la liste. Exécutez la commande suivante :
LPOP mylist
Vous devriez voir la sortie suivante :
"one"
Cela indique que l'élément "one" a été supprimé de la liste et renvoyé.
Pour vérifier le résultat, récupérons les éléments restants en utilisant LRANGE. Exécutez la commande suivante :
LRANGE mylist 0 -1
Vous devriez voir la sortie suivante :
1) "two"
2) "three"
3) "four"
4) "five"
Comme vous pouvez le constater, l'élément "one" n'est plus dans la liste.
Ensuite, utilisons RPOP pour supprimer et récupérer le dernier élément de la liste. Exécutez la commande suivante :
RPOP mylist
La sortie sera :
"five"
Cela signifie que l'élément "five" a été supprimé de la liste et renvoyé.
Récupérons à nouveau les éléments restants en utilisant LRANGE. Exécutez la commande suivante :
LRANGE mylist 0 -1
Vous devriez voir la sortie suivante :
1) "two"
2) "three"
3) "four"
Comme vous pouvez le constater, l'élément "five" n'est plus dans la liste.
Enfin, supprimez la liste mylist et quittez redis-cli en tapant exit et en appuyant sur Entrée. Cela garantit que vos commandes sont enregistrées.
DEL mylist
exit
LPOP et RPOP sont des commandes fondamentales pour gérer les listes Redis comme des files d'attente (queues) ou des piles (stacks). Elles fournissent un moyen simple et efficace de supprimer et de récupérer des éléments de chaque extrémité de la liste.
Blocage et Extraction avec BLPOP
Dans cette étape, vous apprendrez à utiliser la commande BLPOP, qui est une version bloquante de LPOP. BLPOP permet à un client d'attendre (bloquer) jusqu'à ce qu'un élément soit disponible dans une liste avant de tenter de l'extraire (pop). Ceci est particulièrement utile pour construire des files d'attente de messages ou des files d'attente de tâches fiables où les consommateurs doivent attendre que de nouveaux éléments soient ajoutés.
Pour cette étape, vous devrez ouvrir deux fenêtres de terminal. Dans les deux terminaux, connectez-vous au serveur Redis en utilisant la commande redis-cli :
redis-cli
Gardez le premier terminal connecté à Redis. Dans le second terminal, nous allons exécuter la commande d'extraction bloquante.
Tout d'abord, assurez-vous que la liste mylist a été supprimée lors des étapes précédentes. Si ce n'est pas le cas, exécutez la commande suivante :
DEL mylist
Dans le second terminal, exécutez la commande suivante :
BLPOP mylist 100
Cette commande bloquera pendant un maximum de 100 secondes, en attendant qu'un élément devienne disponible dans la liste mylist. Si aucun élément n'est ajouté dans les 100 secondes, la commande expirera et renverra nil.
Maintenant, revenez au premier terminal. Ajoutons un élément à la liste mylist. Exécutez la commande suivante :
RPUSH mylist "hello"
Immédiatement après avoir exécuté la commande RPUSH dans le premier terminal, vous devriez voir la commande BLPOP dans le second terminal renvoyer la sortie suivante :
1) "mylist"
2) "hello"
Ceci indique que la commande BLPOP a réussi à extraire (pop) l'élément "hello" de la liste mylist. Le premier élément du tableau renvoyé est la clé de la liste, et le second élément est la valeur qui a été extraite.
Si vous n'avez pas ajouté l'élément assez rapidement, la commande BLPOP dans le second terminal a peut-être expiré et renvoyé nil. Si cela se produit, réexécutez simplement la commande BLPOP dans le second terminal, puis ajoutez rapidement un élément à la liste dans le premier terminal.
Maintenant, essayons BLPOP avec plusieurs listes. Dans le second terminal, exécutez la commande suivante :
BLPOP mylist anotherlist 100
Cette commande bloquera, en attendant qu'un élément devienne disponible dans mylist ou anotherlist.
Revenez au premier terminal et ajoutez un élément à anotherlist. Exécutez la commande suivante :
RPUSH anotherlist "world"
Vous devriez voir la commande BLPOP dans le second terminal renvoyer la sortie suivante :
1) "anotherlist"
2) "world"
Ceci démontre que BLPOP peut attendre des éléments dans plusieurs listes et renvoie la liste à partir de laquelle l'élément a été extrait.
Enfin, quittez redis-cli dans les deux terminaux en tapant exit et en appuyant sur Entrée. Cela garantit que vos commandes sont enregistrées.
exit
BLPOP est une commande cruciale pour construire des applications robustes et évolutives qui reposent sur la communication asynchrone et le traitement des tâches. Elle permet aux consommateurs d'attendre efficacement de nouvelles données sans interroger constamment le serveur Redis.
Résumé
Dans ce labo, vous avez exploré les opérations fondamentales des listes Redis. Vous avez appris à gérer et à manipuler les données de liste à l'aide de commandes telles que LTRIM, LINSERT, LPOP, RPOP et BLPOP.
Vous vous êtes entraîné à tronquer (trimming) des listes à des plages spécifiques avec LTRIM, à insérer des éléments avant ou après des éléments existants à l'aide de LINSERT, à supprimer des éléments du début et de la fin des listes avec LPOP et RPOP respectivement, et à bloquer jusqu'à ce qu'un élément soit disponible pour être supprimé avec BLPOP. Ces opérations sont essentielles pour gérer efficacement les données stockées dans les listes Redis.