Académique Documents
Professionnel Documents
Culture Documents
• Introduction
• Persistance des données
• Structures de données
SNINEH Sidi Mohamed
• Utilisation de Redis
• Redis standalone
• Redis Sentinel
• Redis Cluster
• Installation du Redis
• Types de données
2
BD NOSQL (R EDIS)
Introduction et définition
• Redis signifie "Remote Dictionary Server". Serveur de dictionnaire distant
• Redis est un magasin de structure de données, orienté clé/valeur, en mémoire open
source utilisé comme :
• base de données,
• cache,
SNINEH Sidi Mohamed
• message broker,
• moteur de diffusion (streaming engine) ou traitement de flux .
3
BD NOSQL (R EDIS)
Persistance Redis
• Redis enregistre les données en mémoire par défaut (performances
optimales), avec une persistance périodique du disque en option.
• RDB + AOF
4
BD NOSQL (R EDIS)
Structures de données
• Redis fournit des structures de données telles que :
SNINEH Sidi Mohamed
5
BD NOSQL (R EDIS)
Structures de données
• calcul de l'intersection,
• de l'union,
• et de la différence d'ensembles .
6
BD NOSQL (R EDIS)
Introduction et définition
• Lua scripting
• Keys with a limited time-to-live
• LRU eviction of keys
• Automatic failover
7
BD NOSQL (R EDIS)
Utilisation du Redis
• GitHub
• Snapchat
• Craiglist
• StackOverflow
8
BD NOSQL (R EDIS)
Instances Redis Standalone
9
BD NOSQL (R EDIS)
Redis sentinelle
• Redis Sentinelle est une application distincte qui s'exécute en arrière-plan. Avec trois nœuds, vous pouvez
créer un déploiement Sentinelle entièrement fonctionnel.
• surveille les instances maître et esclave
• alerte de tout changement,
SNINEH Sidi Mohamed
10
BD NOSQL (R EDIS)
Cluster Redis
• Un cluster doit avoir au moins 3 nœuds maître. Redis recommandant que chaque
maître ait au moins un esclave et nécessite Redis version 3.0 ou supérieure.
• Avantages du cluster Redis :
• Divise automatiquement les données entre plusieurs nœuds.
• Fiabilité des données : les données sont automatiquement partitionnées sur de
SNINEH Sidi Mohamed
11
BD NOSQL (R EDIS)
Choix d’une solution Redis
• Utilisation du Redis pour les tests, mais vous n'avez pas besoin de la haute
disponibilité ou de la fiabilité des données ====> Utiliser Redis standalone
SNINEH Sidi Mohamed
• Le besoin d'une haute disponibilité, même si elle n'est pas évolutive, et que vous avez
moins de données que de RAM sur une machine ====> Utiliser Redis Sentinelle
12
BD NOSQL (R EDIS)
Installation du Redis
• Installer Redis
• La façon dont vous installez Redis dépend de votre système d'exploitation et si vous
souhaitez l'installer avec Redis Stack et Redis UI.
• Redis Stack a été créé pour permettre aux développeurs de créer des applications en
temps réel avec une plate-forme de données backend capable de traiter de manière fiable
les demandes en quelques millisecondes ou moins
SNINEH Sidi Mohamed
13
BD NOSQL (R EDIS)
Modèle logiques de données
value n
Tail
14
BD NOSQL (R EDIS)
Keys
• Les clés Redis sont binaires : vous pouvez utiliser n'importe quelle séquence binaire comme clé.
• Evitez les clés très longues. Par exemple, une clé de 1024 octets est une mauvaise idée non
SNINEH Sidi Mohamed
• Evitez les clés très courtes. Il ne sert à rien d'écrire "u1000flw" comme clé si vous pouvez
l’écrire "user:1000:followers".
15
BD NOSQL (R EDIS)
Installation du Redis
• Installer Redis
• La façon dont vous installez Redis dépend de votre système d'exploitation.
SNINEH Sidi Mohamed
https://github.com/tporadowski/redis/releases
16
BD NOSQL (R EDIS)
Installation du Redis
SNINEH Sidi Mohamed
17
BD NOSQL (R EDIS)
Installation du Redis
SNINEH Sidi Mohamed
18
BD NOSQL (R EDIS)
Installation du Redis
SNINEH Sidi Mohamed
19
BD NOSQL (R EDIS)
Installation du Redis
SNINEH Sidi Mohamed
20
BD NOSQL (R EDIS)
Présentation des types de données Redis
21
BD NOSQL (R EDIS)
Redis STRINGS
INCR FLUSHALL
INCRBY KEYS
• Implications du stockage de JSON DECR TTL
DECRBY MGET
EXPIRE MSET
• Incrémenter et décrémenter
• …
22
BD NOSQL (R EDIS)
Redis LISTS
RPOP LPUSHX
• Afficher les n suivants éléments
LPOP RPUSHX
LRANGE SORT
• Afficher la longueur de la liste LLEN BLPOP
LSET
• …
23
BD NOSQL (R EDIS)
Redis SETS
• Utilisation
24
BD NOSQL (R EDIS)
Redis sub/pub
• « Message Broker » est un logiciel qui permet aux applications, aux systèmes et aux services
de communiquer entre eux et d'échanger des informations.
APP5
SNINEH Sidi Mohamed
APP1 APP3
APP2 APP4
25
BD NOSQL (R EDIS)
Redis sub/pub
• « Message Broker » est un logiciel qui permet aux applications, aux systèmes et aux services
de communiquer entre eux et d'échanger des informations.
APP5
SNINEH Sidi Mohamed
APP1 APP3
Message Broker
APP2 APP4
26
BD NOSQL (R EDIS)
Redis sub/pub
• Messagerie Publish/subscribe
Receiver 1
Receiver N
27
BD NOSQL (R EDIS)
Redis sub/pub
• Besoin de publier des notifications d’un événement vers des applications distribuées.
PUBLISH
SUBSCRIBE
UNSUBSCRIBE
PSUBSCRIBE
PUNSUBSCRIBE
28
BD NOSQL (R EDIS)
Cluster Redis
127.0.0.1:7000 127.0.0.1:7001
cluster 127.0.0.1:7002
Redis et lors du calcul de l'emplacement, Redis 127.0.0.1:7003
utilise CRC16 de clé modulo 16384
29
BD NOSQL (R EDIS)
Cluster Redis
30