formations/cesi/nosql/03-Exercices_Redis.md

85 lines
2.8 KiB
Markdown

# Exercices Redis
Utiliser redis-cli et copier/coller le résultat de chaque exercice (commandes et retours de Redis) dans un fichier texte.
---
## Exercice 1
* créer une clé "normale" avec sa valeur
* récupérer le résultat
* supprimer la clé
---
## Exercice 2 : expiration
* créer une clé
* lui donner une expiration courte (quelques secondes)
* vérifier que la clé "disparaît" toute seule
---
## Exercice 3 : compteurs
* Créer une clé contenant un numéro
* L'incrémenter et le décrementer avec les commandes Redis adaptées
---
## Exercice 4 : liste unique non ordonnée
* Créer une liste unique non ordonnée (set, `SADD`)
* Y insérer plusieurs entrées
* Insérer des entrées en double
* Vérifier que la liste ne contient pas de doublons
* Supprimer des entrées
---
## Exercice 5 : liste ordonnée par ordre d'insertion
* Créer une liste ordonnée (`LPUSH`)
* Ajouter des entrées par la gauche et la droite (`LPUSH` et `RPUSH`)
* Récupérer une partie de la liste
* Supprimer des éléments par la gauche, la droite (pop) et arbitrairement (rem)
---
## Exercice 6 : hashes
* Créer un hash avec plusieurs sous-clés et sous-valeurs (`HSET` et `HMSET`)
* Récupérer toutes les sous-valeurs du hash
* Modifier une seule sous-valeur
* Récupérer une seule sous-valeur
---
## Exercice 7 : liste ordonnée par score
* Enregistrer les scores de 10 joueurs de Tetris dans une liste ordonnée (`ZADD`), avec leurs noms et leurs scores
* Récupérer la liste des 5 meilleurs joueurs (`ZRANGE`)
* Récupérer le score du joueur Bob
---
## Mini-projet : newsfeed de réseau social
Note : tout le monde doit utiliser le même serveur Redis au final !
Travail en équipe (groupes et classe).
Prérequis avant de coder : se mettre d'accord avec le reste de la classe de la structure des données à stocker dans Redis (types, noms des clés, etc.) !
Pour rendre les choses plus faciles : la base Redis contiendra une liste unique non ordonnée "utilisateurs" contenant la liste des noms/pseudo des utilisateurs du réseau social.
* L'application doit permettre d'ajouter des posts à sa propre timeline
* Les posts doivent contenir : date, nom de l'utilisateur, contenu du post
* Chaque utilisateur a une timeline différente selon qui il veut suivre
* Mais le contenu des posts ne doit être stocké qu'une seule fois !
* L'application doit propager ces posts aux utilisateurs inscrits à sa propre timeline
* L'application doit permettre de lire les derniers posts des utilisateurs auxquels on s'est inscrit
Note : l'implémentation de la gestion des utilisateurs et de l'inscription aux timelines des autres utilisateurs est facultative (création d'utilisateur et inscription aux timelines sont possibles à la main avec redis-cli).
Note 2 : certaines données associatives peuvent être doublonnées (présence dans plusieurs clés) si besoin.