SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
REMOTE DICTIONARY SERVER
Mme Ines Slimene
Ines_slimene@yahoo.fr
Introduction
Redis est une solution open-source codée intégralement en C par Salvatore Sanfilippo
Il est sponsorisé par VMWare
Les sites Internet à fort traffic utilisent Redis
Redis est avant tout un serveur de données en mémoire. Il est vraiment rapide. Une machine
classique traite sans problèmes 120 000 opérations par seconde.
https://inesslimene.wixsite.com/moncours REDIS 2
Introduction
Redis est un système de gestion de base de données (SGBD) fonctionnant sur le principe clé-
valeur scalable.
Ce système de type NoSQL est connu pour obtenir de très bonnes performances.
Redis est l’un des système de gestion de base de données les plus populaires.
Ce système est notamment utilisés sur de gros projets web tels que GitHub, Stack
Overflow, Craigslist ou The Guardian.
Son nom viens de la concaténation du terme « REmote DIctionary Server », signifiant
littéralement « serveur de dictionnaire distant ».
https://inesslimene.wixsite.com/moncours REDIS 3
Introduction
La force caractéristique de Redis consiste à stocker les données en mémoire vive (RAM).
De nombreux langages de programmation supporte Redis, incluant notamment Java, PHP,
Javascript (via node.js), C, C++, Objective-C, Perl, Python ou encore Ruby.
Redis est particulièrement utile pour manipuler des types de données simples tels que des
chaînes de caractères, des tableaux associatifs, listes, ensembles et ensembles ordonnés.
NB : La clé doit être de type chaine de caractère mais la valeur peut être de type chaînes de
caractères (String), des tableaux associatifs (Hash), listes (list), ensembles (set) et ensembles
ordonnés (stored set).
https://inesslimene.wixsite.com/moncours REDIS 4
Persistence
On dispose de trois moyens pour assurer la persistence de Redis: RDB, AOF et la commande SAVE.
Mechanisme RDB
RDB crée une copie de toutes les données en mémoire et les stockes dans un espace de stockage
secondaire permanent. Ceci pour un intervalle de temp bien déterminé. Donc il y a possibilité de
perte de données qui seront stockées après le dernier snapshot de RDB.
AOF
AOF crée des fichiers log pour toutes les opérations d’écriture effectuées dans le serveur. Le problème
est que a chaque opération il y a une écriture sur le disque (fichier log) tache couteuse en terme de
stockage et de temps d’exécution.
SAVE Command
On peut forcer le serveur Redis a creer des snapshots RDB a tout moment avec la commande SAVE.
https://inesslimene.wixsite.com/moncours REDIS 5
Sauvegarde et récupération des données
Redis ne fourni pas un mécanisme de sauvegarde et récupération. Donc en cas de problème on
risqué de perdre toutes les données.
Possibilité de travailler avec les réplications
https://inesslimene.wixsite.com/moncours REDIS 6
Réplication
Dans un environnement de réplication, un ensemble de machine partage les mêmes
informations. Si l’un des nœuds tombe en panne les autres prennent la relève.
https://inesslimene.wixsite.com/moncours REDIS 7
Réplication
Tous les slaves contiennent les même données que le master. Si on ajoute un slave au cluster, le
master synchronise automatiquement les données dans le nouveau slave.
Toutes les opérations d’écriture sont dirigées vers le master. Quand une opération est effectuée le
master réplique les Nouvelles données dans les slaves.
Si le nombre d’opération de lecture est grand, le master les distribue sur les slaves pour les exécuter a
temp.
Si l’un des slave tombe en panne, tout l’environnement continuer a bien fonctionner. Et quand il
reprend son travail, le master lui envoie les mises a jour nécessaire.
Si le master crache et perd ses données, l’un des slave sera converti en master. On n’ajoute pas un
nouveau nœud car il ne contiendra aucune données.
Si le master crache mais conserve encore ses données (persistance physique) il suffit de redémarrer le
serveur.
https://inesslimene.wixsite.com/moncours REDIS 8
Clustering
Le clustering est une technique qui permet de découper les données et les stockées sur
plusieurs nœuds. L’avantage est de pouvoir stocker un volume de données plus grand.
Supposons qu’on un serveur redis avec 64G de mémoire. Si on utilise 10 serveurs on aura 640 G
de ram.
https://inesslimene.wixsite.com/moncours REDIS 9
Inconvénients
Redis demande un temps pour bien comprendre ses structures.
Redis étant une pure base en mémoire, il faut activer soit la sauvegarde sur disque, soir un slave pour
sauver vos données.
Vu la taille limitée de la mémoire, Redis ne peut pas stocker des fichiers volumineux, il ne peut
stocker que des informations textuelles de petite taille et qui nécessite un accès en modification ou
insertion très rapide
Par défaut, la base n’est pas sécurisée. Un client peut se connecter dessus et lancer un FLUSHDB, qui
videra les données. Il faut activer soit la protection par clé, soit simplement faire en sorte que les
serveurs Redis ne soient pas sur Internet.
Sécurité :
◦ Vérifier valeur mot de passe : CONFIG get requirepass
◦ Modifier mot de passe : CONFIG set requirepass « redis"
◦ S’authentifier avec mot de passe : AUTH password
https://inesslimene.wixsite.com/moncours REDIS 10
String
C'est le type le plus simple : à une clef, on peut y associer une valeur. Cette valeur peut-être une
string de tout type (json, valeur d'une image jpeg), mais aussi un entier.
La limite est de 1 Go.
Les principales commandes : SET, GET, INCR, DECR, et GETSET.
redis 127.0.0.1:6379> SET compteur 10
redis 127.0.0.1:6379> INCR compteur
reredis 127.0.0.1:6379> GET compteur
redis 127.0.0.1:6379> GETSET compteur 123
https://inesslimene.wixsite.com/moncours REDIS 11
Hash
Une hash permet de stocker dans un même enregistrement plusieurs couples de clef/valeurs.
Chaque hash peut stocker jusqu’à 232-1 (~ 4 milliard) paire
Commandes : HSET, HGET, HLEN, HDEL
HGETALL pour obtenir tous les couples clef-valeur,
HKEYS et HVALS pour obtenir toutes les clefs ou valeurs.
redis 127.0.0.1:6379> HSET nosql redis "clef/valeur"
redis 127.0.0.1:6379> HGET nosql redis
redis 127.0.0.1:6379> HGETALL nosql
redis 127.0.0.1:6379> HKEYS nosql
redis 127.0.0.1:6379> HVALS nosql
https://inesslimene.wixsite.com/moncours REDIS 12
Listes
Les listes de redis sont des listes liées (linked list). Cela veut dire que même si vous avez des millions
d'enregistrement dans une liste, cela sera toujours aussi rapide d'insérer un élément en tête ou en
queue de liste.
Chaque liste peut stocker jusqu’à 232-1 (~ 4 milliard) éléments
Commandes : RPUSH et LPUSH qui permettent respectivement d'ajouter un élément en fin ou en
début de liste,
LRANGE pour obtenir une partie des éléments de la liste,
LINDEX pour obtenir un seul élément de la liste, LLEN pour obtenir la taille de la liste.
redis 127.0.0.1:6379> RPUSH messages "Bienvenue"
redis 127.0.0.1:6379> LPUSH messages "Merci"
redis 127.0.0.1:6379> LRANGE messages 0 3
https://inesslimene.wixsite.com/moncours REDIS 13
Sets
Les Sets sont des collections d'objets non ordonnées.
Les commandes : SADD pour ajouter une valeur à un set, SCARD pour obtenir la taille d'un set,
SINTER, SUNION, SDIFF qui permettent respectivement d'obtenir l'intersection, l'union et la
différences entre 2 sets.
Ces commandes existent en version "STORE" ; ainsi SINTERSTORE permet de stocker dans un
nouveau set l'intersection de 2 autres.
redis 127.0.0.1:6379> SADD supermarche pommes
redis 127.0.0.1:6379> SADD monFrigo pommes
redis 127.0.0.1:6379> SCARD monFrigo
redis 127.0.0.1:6379> SINTER supermarche monFrigo
https://inesslimene.wixsite.com/moncours REDIS 14
Sets triés
Les sets triés (Sorted Set) sont similaires à des Sets mais ajoutent une notion de score aux valeurs
ajoutées aux Set, ce qui permet de faire des tris.
Les commandes commencent toutes par Z comme Zorted Set.
Exemple : ZRANGE, ZRANGEBYSCORE et ZRANK qui tirent parti des scores des données stockées.
redis 127.0.0.1:6379> ZADD savants 1571 "Johannes Kepler"
redis 127.0.0.1:6379> ZADD savants 1879 "Albert Einstein"
redis 127.0.0.1:6379> ZADD savants 1858 "Max Planck"
redis 127.0.0.1:6379> ZRANGE savants 0 -1
sredis 127.0.0.1:6379> ZREVRANGE savants 0 -1 WITHSCORES
redis 127.0.0.1:6379> ZRANGEBYSCORE savants 1800 2010
https://inesslimene.wixsite.com/moncours REDIS 15
Domaines d’utilisation
• Redis comme mémoire cache
◦ Gestion des sessions – hashes
◦ Excellent outil pour la gestion des scores – sorted sets
• Redis comme base de données
◦ Persistance dans le disque
◦ Haute performance
Redis comme bus de message
◦ Basé sur les fonctionnalités Pub/Sub
◦ Queues avec des structures en liste
◦ Resque – Ruby library for creating background jobs
https://inesslimene.wixsite.com/moncours REDIS 16

Contenu connexe

Tendances

Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introductionfredcons
 
Datastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingDatastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingVictor Coustenoble
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésRomain Hardouin
 
Cartographie du big data
Cartographie du big dataCartographie du big data
Cartographie du big dataacogoluegnes
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidAmal Abid
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Jérôme Mainaud
 
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Ippon
 
Spark une alternative à Hadoop MapReduce pour le Datamining
Spark une alternative à Hadoop MapReduce pour le DataminingSpark une alternative à Hadoop MapReduce pour le Datamining
Spark une alternative à Hadoop MapReduce pour le DataminingModern Data Stack France
 
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéalOpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéalJonathan Clarke
 
Présentation du stockage RAID
Présentation du stockage RAIDPrésentation du stockage RAID
Présentation du stockage RAIDEmmanuel Florac
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopBenoît de CHATEAUVIEUX
 
04 01 configuration raid
04 01 configuration raid04 01 configuration raid
04 01 configuration raidNoël
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosqlInes Slimene
 
Cassandra pour les développeurs java
Cassandra pour les développeurs javaCassandra pour les développeurs java
Cassandra pour les développeurs javaJérémy Sevellec
 
Paris stormusergroup intrudocution
Paris stormusergroup intrudocutionParis stormusergroup intrudocution
Paris stormusergroup intrudocutionParis_Storm_UG
 

Tendances (20)

Système RAID
Système RAIDSystème RAID
Système RAID
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
 
Datastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingDatastax Cassandra + Spark Streaming
Datastax Cassandra + Spark Streaming
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalités
 
Réseaux de stockage
Réseaux de stockageRéseaux de stockage
Réseaux de stockage
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
spark_intro_1208
spark_intro_1208spark_intro_1208
spark_intro_1208
 
Cartographie du big data
Cartographie du big dataCartographie du big data
Cartographie du big data
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abid
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
 
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
 
Spark une alternative à Hadoop MapReduce pour le Datamining
Spark une alternative à Hadoop MapReduce pour le DataminingSpark une alternative à Hadoop MapReduce pour le Datamining
Spark une alternative à Hadoop MapReduce pour le Datamining
 
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéalOpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
 
Présentation du stockage RAID
Présentation du stockage RAIDPrésentation du stockage RAID
Présentation du stockage RAID
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 
04 01 configuration raid
04 01 configuration raid04 01 configuration raid
04 01 configuration raid
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosql
 
Cassandra pour les développeurs java
Cassandra pour les développeurs javaCassandra pour les développeurs java
Cassandra pour les développeurs java
 
Paris stormusergroup intrudocution
Paris stormusergroup intrudocutionParis stormusergroup intrudocution
Paris stormusergroup intrudocution
 

Similaire à Redis

Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Identity Days
 
Mariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDCMariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDCChristophe Villeneuve
 
Un site web rapide ?
Un site web rapide ? Un site web rapide ?
Un site web rapide ? haricot
 
ch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfsalmanakbi
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Jérôme Petazzoni
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
SQL Server et infrastructure
SQL Server et infrastructureSQL Server et infrastructure
SQL Server et infrastructureDavid Barbarin
 
SnapServer XSR 40 Brochure 2014
SnapServer XSR 40 Brochure 2014SnapServer XSR 40 Brochure 2014
SnapServer XSR 40 Brochure 2014Guilhem Demilly
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamTelecomValley
 
Présentation CoreOS
Présentation CoreOSPrésentation CoreOS
Présentation CoreOSgcatt
 
Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateMor THIAM
 
SnapServer XSR120 Brochure 2014
SnapServer XSR120 Brochure 2014SnapServer XSR120 Brochure 2014
SnapServer XSR120 Brochure 2014Guilhem Demilly
 

Similaire à Redis (20)

Le nouveau AMP : apache mariadb php
Le nouveau AMP : apache mariadb phpLe nouveau AMP : apache mariadb php
Le nouveau AMP : apache mariadb php
 
Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
 
Mariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDCMariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDC
 
Un site web rapide ?
Un site web rapide ? Un site web rapide ?
Un site web rapide ?
 
ISDay 2017 - Atelier HPE
ISDay 2017 - Atelier HPEISDay 2017 - Atelier HPE
ISDay 2017 - Atelier HPE
 
ch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdf
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
Hdfs
HdfsHdfs
Hdfs
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Big sql4meetup
Big sql4meetupBig sql4meetup
Big sql4meetup
 
SQL Server et infrastructure
SQL Server et infrastructureSQL Server et infrastructure
SQL Server et infrastructure
 
SnapServer XSR 40 Brochure 2014
SnapServer XSR 40 Brochure 2014SnapServer XSR 40 Brochure 2014
SnapServer XSR 40 Brochure 2014
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler Softeam
 
Refonte du système d’information
Refonte du système d’informationRefonte du système d’information
Refonte du système d’information
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Présentation CoreOS
Présentation CoreOSPrésentation CoreOS
Présentation CoreOS
 
Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden Gate
 
SnapServer XSR120 Brochure 2014
SnapServer XSR120 Brochure 2014SnapServer XSR120 Brochure 2014
SnapServer XSR120 Brochure 2014
 

Plus de Ines Slimene (12)

Crud
CrudCrud
Crud
 
Cassandra
CassandraCassandra
Cassandra
 
Agregation
AgregationAgregation
Agregation
 
Pig
PigPig
Pig
 
Neo4j
Neo4jNeo4j
Neo4j
 
Mapreduce
MapreduceMapreduce
Mapreduce
 
Introduction
IntroductionIntroduction
Introduction
 
Intro mongodb
Intro mongodbIntro mongodb
Intro mongodb
 
Hive
HiveHive
Hive
 
Hbase
HbaseHbase
Hbase
 
Hadoop
HadoopHadoop
Hadoop
 
Indexation
IndexationIndexation
Indexation
 

Dernier

Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 

Dernier (15)

Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 

Redis

  • 1. REMOTE DICTIONARY SERVER Mme Ines Slimene Ines_slimene@yahoo.fr
  • 2. Introduction Redis est une solution open-source codée intégralement en C par Salvatore Sanfilippo Il est sponsorisé par VMWare Les sites Internet à fort traffic utilisent Redis Redis est avant tout un serveur de données en mémoire. Il est vraiment rapide. Une machine classique traite sans problèmes 120 000 opérations par seconde. https://inesslimene.wixsite.com/moncours REDIS 2
  • 3. Introduction Redis est un système de gestion de base de données (SGBD) fonctionnant sur le principe clé- valeur scalable. Ce système de type NoSQL est connu pour obtenir de très bonnes performances. Redis est l’un des système de gestion de base de données les plus populaires. Ce système est notamment utilisés sur de gros projets web tels que GitHub, Stack Overflow, Craigslist ou The Guardian. Son nom viens de la concaténation du terme « REmote DIctionary Server », signifiant littéralement « serveur de dictionnaire distant ». https://inesslimene.wixsite.com/moncours REDIS 3
  • 4. Introduction La force caractéristique de Redis consiste à stocker les données en mémoire vive (RAM). De nombreux langages de programmation supporte Redis, incluant notamment Java, PHP, Javascript (via node.js), C, C++, Objective-C, Perl, Python ou encore Ruby. Redis est particulièrement utile pour manipuler des types de données simples tels que des chaînes de caractères, des tableaux associatifs, listes, ensembles et ensembles ordonnés. NB : La clé doit être de type chaine de caractère mais la valeur peut être de type chaînes de caractères (String), des tableaux associatifs (Hash), listes (list), ensembles (set) et ensembles ordonnés (stored set). https://inesslimene.wixsite.com/moncours REDIS 4
  • 5. Persistence On dispose de trois moyens pour assurer la persistence de Redis: RDB, AOF et la commande SAVE. Mechanisme RDB RDB crée une copie de toutes les données en mémoire et les stockes dans un espace de stockage secondaire permanent. Ceci pour un intervalle de temp bien déterminé. Donc il y a possibilité de perte de données qui seront stockées après le dernier snapshot de RDB. AOF AOF crée des fichiers log pour toutes les opérations d’écriture effectuées dans le serveur. Le problème est que a chaque opération il y a une écriture sur le disque (fichier log) tache couteuse en terme de stockage et de temps d’exécution. SAVE Command On peut forcer le serveur Redis a creer des snapshots RDB a tout moment avec la commande SAVE. https://inesslimene.wixsite.com/moncours REDIS 5
  • 6. Sauvegarde et récupération des données Redis ne fourni pas un mécanisme de sauvegarde et récupération. Donc en cas de problème on risqué de perdre toutes les données. Possibilité de travailler avec les réplications https://inesslimene.wixsite.com/moncours REDIS 6
  • 7. Réplication Dans un environnement de réplication, un ensemble de machine partage les mêmes informations. Si l’un des nœuds tombe en panne les autres prennent la relève. https://inesslimene.wixsite.com/moncours REDIS 7
  • 8. Réplication Tous les slaves contiennent les même données que le master. Si on ajoute un slave au cluster, le master synchronise automatiquement les données dans le nouveau slave. Toutes les opérations d’écriture sont dirigées vers le master. Quand une opération est effectuée le master réplique les Nouvelles données dans les slaves. Si le nombre d’opération de lecture est grand, le master les distribue sur les slaves pour les exécuter a temp. Si l’un des slave tombe en panne, tout l’environnement continuer a bien fonctionner. Et quand il reprend son travail, le master lui envoie les mises a jour nécessaire. Si le master crache et perd ses données, l’un des slave sera converti en master. On n’ajoute pas un nouveau nœud car il ne contiendra aucune données. Si le master crache mais conserve encore ses données (persistance physique) il suffit de redémarrer le serveur. https://inesslimene.wixsite.com/moncours REDIS 8
  • 9. Clustering Le clustering est une technique qui permet de découper les données et les stockées sur plusieurs nœuds. L’avantage est de pouvoir stocker un volume de données plus grand. Supposons qu’on un serveur redis avec 64G de mémoire. Si on utilise 10 serveurs on aura 640 G de ram. https://inesslimene.wixsite.com/moncours REDIS 9
  • 10. Inconvénients Redis demande un temps pour bien comprendre ses structures. Redis étant une pure base en mémoire, il faut activer soit la sauvegarde sur disque, soir un slave pour sauver vos données. Vu la taille limitée de la mémoire, Redis ne peut pas stocker des fichiers volumineux, il ne peut stocker que des informations textuelles de petite taille et qui nécessite un accès en modification ou insertion très rapide Par défaut, la base n’est pas sécurisée. Un client peut se connecter dessus et lancer un FLUSHDB, qui videra les données. Il faut activer soit la protection par clé, soit simplement faire en sorte que les serveurs Redis ne soient pas sur Internet. Sécurité : ◦ Vérifier valeur mot de passe : CONFIG get requirepass ◦ Modifier mot de passe : CONFIG set requirepass « redis" ◦ S’authentifier avec mot de passe : AUTH password https://inesslimene.wixsite.com/moncours REDIS 10
  • 11. String C'est le type le plus simple : à une clef, on peut y associer une valeur. Cette valeur peut-être une string de tout type (json, valeur d'une image jpeg), mais aussi un entier. La limite est de 1 Go. Les principales commandes : SET, GET, INCR, DECR, et GETSET. redis 127.0.0.1:6379> SET compteur 10 redis 127.0.0.1:6379> INCR compteur reredis 127.0.0.1:6379> GET compteur redis 127.0.0.1:6379> GETSET compteur 123 https://inesslimene.wixsite.com/moncours REDIS 11
  • 12. Hash Une hash permet de stocker dans un même enregistrement plusieurs couples de clef/valeurs. Chaque hash peut stocker jusqu’à 232-1 (~ 4 milliard) paire Commandes : HSET, HGET, HLEN, HDEL HGETALL pour obtenir tous les couples clef-valeur, HKEYS et HVALS pour obtenir toutes les clefs ou valeurs. redis 127.0.0.1:6379> HSET nosql redis "clef/valeur" redis 127.0.0.1:6379> HGET nosql redis redis 127.0.0.1:6379> HGETALL nosql redis 127.0.0.1:6379> HKEYS nosql redis 127.0.0.1:6379> HVALS nosql https://inesslimene.wixsite.com/moncours REDIS 12
  • 13. Listes Les listes de redis sont des listes liées (linked list). Cela veut dire que même si vous avez des millions d'enregistrement dans une liste, cela sera toujours aussi rapide d'insérer un élément en tête ou en queue de liste. Chaque liste peut stocker jusqu’à 232-1 (~ 4 milliard) éléments Commandes : RPUSH et LPUSH qui permettent respectivement d'ajouter un élément en fin ou en début de liste, LRANGE pour obtenir une partie des éléments de la liste, LINDEX pour obtenir un seul élément de la liste, LLEN pour obtenir la taille de la liste. redis 127.0.0.1:6379> RPUSH messages "Bienvenue" redis 127.0.0.1:6379> LPUSH messages "Merci" redis 127.0.0.1:6379> LRANGE messages 0 3 https://inesslimene.wixsite.com/moncours REDIS 13
  • 14. Sets Les Sets sont des collections d'objets non ordonnées. Les commandes : SADD pour ajouter une valeur à un set, SCARD pour obtenir la taille d'un set, SINTER, SUNION, SDIFF qui permettent respectivement d'obtenir l'intersection, l'union et la différences entre 2 sets. Ces commandes existent en version "STORE" ; ainsi SINTERSTORE permet de stocker dans un nouveau set l'intersection de 2 autres. redis 127.0.0.1:6379> SADD supermarche pommes redis 127.0.0.1:6379> SADD monFrigo pommes redis 127.0.0.1:6379> SCARD monFrigo redis 127.0.0.1:6379> SINTER supermarche monFrigo https://inesslimene.wixsite.com/moncours REDIS 14
  • 15. Sets triés Les sets triés (Sorted Set) sont similaires à des Sets mais ajoutent une notion de score aux valeurs ajoutées aux Set, ce qui permet de faire des tris. Les commandes commencent toutes par Z comme Zorted Set. Exemple : ZRANGE, ZRANGEBYSCORE et ZRANK qui tirent parti des scores des données stockées. redis 127.0.0.1:6379> ZADD savants 1571 "Johannes Kepler" redis 127.0.0.1:6379> ZADD savants 1879 "Albert Einstein" redis 127.0.0.1:6379> ZADD savants 1858 "Max Planck" redis 127.0.0.1:6379> ZRANGE savants 0 -1 sredis 127.0.0.1:6379> ZREVRANGE savants 0 -1 WITHSCORES redis 127.0.0.1:6379> ZRANGEBYSCORE savants 1800 2010 https://inesslimene.wixsite.com/moncours REDIS 15
  • 16. Domaines d’utilisation • Redis comme mémoire cache ◦ Gestion des sessions – hashes ◦ Excellent outil pour la gestion des scores – sorted sets • Redis comme base de données ◦ Persistance dans le disque ◦ Haute performance Redis comme bus de message ◦ Basé sur les fonctionnalités Pub/Sub ◦ Queues avec des structures en liste ◦ Resque – Ruby library for creating background jobs https://inesslimene.wixsite.com/moncours REDIS 16