formations/cesi/nosql/03-Exercices_Redis.md

2.8 KiB

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.