# Exercices Redis * Utiliser redis-cli et copier/coller le résultat de chaque exercice (commandes et retours de Redis) dans un fichier texte. * [Installer Redis sous Windows](https://www.supinfo.com/articles/single/8843-redis-installation-windows) --- ## 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 nécessaire.