0% ont trouvé ce document utile (0 vote)
52 vues79 pages

3 Bdclevaleur

nosql

Transféré par

sidali Khelil cherfi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
52 vues79 pages

3 Bdclevaleur

nosql

Transféré par

sidali Khelil cherfi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Bases de données orientées clé/valeur

M. BOUMEDIENE

Institut National des Télécommunications et des Technologies


de l’Information et de la Communication
e-mail: mboumediene[at][Link]

1/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Plan

1 Modèles distribués

2 Avantages et inconvénients

3 Redis

4 Structures de données

2/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Plan

1 Modèles distribués

2 Avantages et inconvénients

3 Redis

4 Structures de données

3/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Concept clé/valeur
Les bases de données clé/valeur sont les plus basiques des bases NOSQL

4/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Concept clé/valeur
Les bases de données clé/valeur sont les plus basiques des bases NOSQL
Les données sont représentées par un couple clé/valeur
Cela consiste à stocker une valeur associée à une clé unique

4/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Concept clé/valeur
Les bases de données clé/valeur sont les plus basiques des bases NOSQL
Les données sont représentées par un couple clé/valeur
Cela consiste à stocker une valeur associée à une clé unique
⇒ la clé est l’unique point d’accès à la valeur
⇒ à partir d’une clé, j’obtiens une donnée (qui peut-être complexe)

4/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Concept clé/valeur
Les bases de données clé/valeur sont les plus basiques des bases NOSQL
Les données sont représentées par un couple clé/valeur
Cela consiste à stocker une valeur associée à une clé unique
⇒ la clé est l’unique point d’accès à la valeur
⇒ à partir d’une clé, j’obtiens une donnée (qui peut-être complexe)
Exemples :
Sur un réseau social, à partir d’un utilisateur (clé), j’obtiens la liste de ses amis (valeur)
Dans un catalogue de livres, à partir d’un ISBN, j’obtiens les détails du livre (valeur)
La clé doit être précise et atomique, alors que la valeur peut être complexe
⇒ la valeur peut être une chaîne de caractères, une liste, un ensemble, un objet sérialisé,
etc.
La base de données fonctionne comme un tableau associatif
⇒ qui est un principe connu en programmation (PHP)
4/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles
Modèles distribués

Concept clé/valeur
Il n’y a pas de schéma et les données ne sont pas liées entre elles

5/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Concept clé/valeur
Il n’y a pas de schéma et les données ne sont pas liées entre elles
L’intelligence portée auparavant par les requêtes SQL devra être portée par l’application
La structure de l’objet est libre, c’est au développeur de la prendre en charge

5/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Concept clé/valeur
Il n’y a pas de schéma et les données ne sont pas liées entre elles
L’intelligence portée auparavant par les requêtes SQL devra être portée par l’application
La structure de l’objet est libre, c’est au développeur de la prendre en charge
La base de données considère les valeurs comme un bloc d’octets
⇒ elle se focalise uniquement sur le stockage et la récupération des données
⇒ elle ne gère pas la structure des données (possible de stocker des données hétérogènes)

5/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Opérations de base (CRUD)

Ces bases offrent les 4 opérations fondamentales (CRUD) :


Create : créer un nouvel objet avec sa clé ⇒ create(key, value)
Read : lit un objet à partir de sa clé ⇒ read(key)
Update : met à jour la valeur d’un objet à partir de sa clé ⇒ update(key, value)
Delete : supprime un objet à partir de sa clé ⇒ delete(key)

6/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Opérations de base (CRUD)

Ces bases offrent les 4 opérations fondamentales (CRUD) :


Create : créer un nouvel objet avec sa clé ⇒ create(key, value)
Read : lit un objet à partir de sa clé ⇒ read(key)
Update : met à jour la valeur d’un objet à partir de sa clé ⇒ update(key, value)
Delete : supprime un objet à partir de sa clé ⇒ delete(key)
Cette approche minimaliste offre des performances élevées en lecture/écriture puisque de
simples accès disques sont effectués

6/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Opérations de base (CRUD)

Ces bases offrent les 4 opérations fondamentales (CRUD) :


Create : créer un nouvel objet avec sa clé ⇒ create(key, value)
Read : lit un objet à partir de sa clé ⇒ read(key)
Update : met à jour la valeur d’un objet à partir de sa clé ⇒ update(key, value)
Delete : supprime un objet à partir de sa clé ⇒ delete(key)
Cette approche minimaliste offre des performances élevées en lecture/écriture puisque de
simples accès disques sont effectués
Certaines bases offrent une fonctionnalité qui permet de charger la base de données
complètement en mémoire (in memory)
Les performances sont encore bien plus élevées puisqu’un accès mémoire est beaucoup
plus rapide qu’un accès disque

6/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Opérations de base (CRUD)

Ces bases offrent les 4 opérations fondamentales (CRUD) :


Create : créer un nouvel objet avec sa clé ⇒ create(key, value)
Read : lit un objet à partir de sa clé ⇒ read(key)
Update : met à jour la valeur d’un objet à partir de sa clé ⇒ update(key, value)
Delete : supprime un objet à partir de sa clé ⇒ delete(key)
Cette approche minimaliste offre des performances élevées en lecture/écriture puisque de
simples accès disques sont effectués
Certaines bases offrent une fonctionnalité qui permet de charger la base de données
complètement en mémoire (in memory)
Les performances sont encore bien plus élevées puisqu’un accès mémoire est beaucoup
plus rapide qu’un accès disque
1 base = 1 table (clé/valeur : une colonne clé et une colonne valeur)

6/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Conception de la clé et de la valeur


Les clés doivent être bien conçues (bien réfléchies) sinon les performances seront
impactées

7/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Conception de la clé et de la valeur


Les clés doivent être bien conçues (bien réfléchies) sinon les performances seront
impactées
Utiliser une convention de nommage
Utiliser des noms significatifs et sans ambiguïté
Utiliser un délimiteur commun
Utiliser des clés courtes autant que possible
Tenir compte des limites de mise en œuvre

7/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Conception de la clé et de la valeur


Les clés doivent être bien conçues (bien réfléchies) sinon les performances seront
impactées
Utiliser une convention de nommage
Utiliser des noms significatifs et sans ambiguïté
Utiliser un délimiteur commun
Utiliser des clés courtes autant que possible
Tenir compte des limites de mise en œuvre
En général, la valeur sera déterminée par l’application, mais il faut éviter certains
problèmes de conception

7/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Conception de la clé et de la valeur


Les clés doivent être bien conçues (bien réfléchies) sinon les performances seront
impactées
Utiliser une convention de nommage
Utiliser des noms significatifs et sans ambiguïté
Utiliser un délimiteur commun
Utiliser des clés courtes autant que possible
Tenir compte des limites de mise en œuvre
En général, la valeur sera déterminée par l’application, mais il faut éviter certains
problèmes de conception
Quels agrégats utiliser ?
Une clé liée à plusieurs valeurs sur des bases différentes (exemple clé user52)
Plusieurs clés liées à plusieurs valeurs (exemple user52name, user52address, etc)

7/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Conception de la clé et de la valeur


Les clés doivent être bien conçues (bien réfléchies) sinon les performances seront
impactées
Utiliser une convention de nommage
Utiliser des noms significatifs et sans ambiguïté
Utiliser un délimiteur commun
Utiliser des clés courtes autant que possible
Tenir compte des limites de mise en œuvre
En général, la valeur sera déterminée par l’application, mais il faut éviter certains
problèmes de conception
Quels agrégats utiliser ?
Une clé liée à plusieurs valeurs sur des bases différentes (exemple clé user52)
Plusieurs clés liées à plusieurs valeurs (exemple user52name, user52address, etc)
Valeurs longues ou courtes ?
Les valeurs longues réduisent le nombre de lectures
Mais le temps de lecture et d’écriture des valeurs augmente
7/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles
Modèles distribués

Cas d’utilisation
Les bases de données clé/valeur sont plus adaptées pour :
Dépôt de données avec besoins de requêtage très simples

8/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Cas d’utilisation
Les bases de données clé/valeur sont plus adaptées pour :
Dépôt de données avec besoins de requêtage très simples
Système de stockage de cache où les données peuvent être volatiles

8/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Cas d’utilisation
Les bases de données clé/valeur sont plus adaptées pour :
Dépôt de données avec besoins de requêtage très simples
Système de stockage de cache où les données peuvent être volatiles
Les informations de sessions
⇒ chaque session est unique (sessionid), alors il est possible de stocker ses variables dans
une base de données (clé/valeur)

8/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Cas d’utilisation
Les bases de données clé/valeur sont plus adaptées pour :
Dépôt de données avec besoins de requêtage très simples
Système de stockage de cache où les données peuvent être volatiles
Les informations de sessions
⇒ chaque session est unique (sessionid), alors il est possible de stocker ses variables dans
une base de données (clé/valeur)
Les Préférences d’utilisateur, son profil
⇒ chaque user est unique (userid) et possède plusieurs attribut (langue, couleur, etc)

8/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Cas d’utilisation
Les bases de données clé/valeur sont plus adaptées pour :
Dépôt de données avec besoins de requêtage très simples
Système de stockage de cache où les données peuvent être volatiles
Les informations de sessions
⇒ chaque session est unique (sessionid), alors il est possible de stocker ses variables dans
une base de données (clé/valeur)
Les Préférences d’utilisateur, son profil
⇒ chaque user est unique (userid) et possède plusieurs attribut (langue, couleur, etc)
Les paniers d’achat
⇒ chaque user est unique (userid) et ses informations d’achat sont stockées dans une valeur

8/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Cas d’utilisation
Les bases de données clé/valeur sont plus adaptées pour :
Dépôt de données avec besoins de requêtage très simples
Système de stockage de cache où les données peuvent être volatiles
Les informations de sessions
⇒ chaque session est unique (sessionid), alors il est possible de stocker ses variables dans
une base de données (clé/valeur)
Les Préférences d’utilisateur, son profil
⇒ chaque user est unique (userid) et possède plusieurs attribut (langue, couleur, etc)
Les paniers d’achat
⇒ chaque user est unique (userid) et ses informations d’achat sont stockées dans une valeur
Collecte d’évènements
⇒ pour un temps correspondant une liste d’évènements
...

8/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Modèles distribués

Cas d’utilisation
Les bases de données clé/valeur sont plus adaptées pour :
Dépôt de données avec besoins de requêtage très simples
Système de stockage de cache où les données peuvent être volatiles
Les informations de sessions
⇒ chaque session est unique (sessionid), alors il est possible de stocker ses variables dans
une base de données (clé/valeur)
Les Préférences d’utilisateur, son profil
⇒ chaque user est unique (userid) et possède plusieurs attribut (langue, couleur, etc)
Les paniers d’achat
⇒ chaque user est unique (userid) et ses informations d’achat sont stockées dans une valeur
Collecte d’évènements
⇒ pour un temps correspondant une liste d’évènements
...
Exemple de base de données clé/valeur
Redis (VMWare) : Twitter, GitHub, Pinterest, Snapchat, StackOverflow
Memcached (Danga) : Netflix, Wordpress
Azure Cosmos DB (Microsoft) : Mercedes, LG
8/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles
Avantages et inconvénients

Plan

1 Modèles distribués

2 Avantages et inconvénients

3 Redis

4 Structures de données

9/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Avantages et inconvénients

Avantages et inconvénients

Avantages
Modèle de données très simple

10/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Avantages et inconvénients

Avantages et inconvénients

Avantages
Modèle de données très simple
1 base = 1 table à deux colonnes (clé et valeur)

10/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Avantages et inconvénients

Avantages et inconvénients

Avantages
Modèle de données très simple
1 base = 1 table à deux colonnes (clé et valeur)
Recherche rapide

10/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Avantages et inconvénients

Avantages et inconvénients

Avantages
Modèle de données très simple
1 base = 1 table à deux colonnes (clé et valeur)
Recherche rapide
Bonne scalabilité horizontale

10/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Avantages et inconvénients

Avantages et inconvénients

Avantages
Modèle de données très simple
1 base = 1 table à deux colonnes (clé et valeur)
Recherche rapide
Bonne scalabilité horizontale
Inconvénients
Modèle de données trop simple
⇒ pas facile de représenter les données liées (complexes)

10/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Avantages et inconvénients

Avantages et inconvénients

Avantages
Modèle de données très simple
1 base = 1 table à deux colonnes (clé et valeur)
Recherche rapide
Bonne scalabilité horizontale
Inconvénients
Modèle de données trop simple
⇒ pas facile de représenter les données liées (complexes)
Pas de requêtes possibles sur les valeurs
⇒ interrogation seulement sur clé

10/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Avantages et inconvénients

Avantages et inconvénients

Avantages
Modèle de données très simple
1 base = 1 table à deux colonnes (clé et valeur)
Recherche rapide
Bonne scalabilité horizontale
Inconvénients
Modèle de données trop simple
⇒ pas facile de représenter les données liées (complexes)
Pas de requêtes possibles sur les valeurs
⇒ interrogation seulement sur clé
Une partie de la complexité de recherche sera déportée sur l’application

10/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Plan

1 Modèles distribués

2 Avantages et inconvénients

3 Redis

4 Structures de données

11/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Présentation de Redis

REmote DIctionary Server


Redis est un moteur de base de données clé/valeur
Rédis est un moteur en mémoire
Développé par Salvatore Sanfilippo (2009)
Open Source - licence BSD
Redis manipule le plus rapidement possible les structures de données qui y sont
maintenues
Il est à la fois un outil de gestion de paires clé-valeur et un cache de données
Le but de Redis est d’être très rapide, très efficace et léger
Redis est utilisé par : Twitter, GitHub, StackOverflow

12/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Stockage des données


Redis conserve l’intégralité des données en mémoire vive
⇒ permet d’obtenir d’excellentes performances en évitant les accès disques

13/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Stockage des données


Redis conserve l’intégralité des données en mémoire vive
⇒ permet d’obtenir d’excellentes performances en évitant les accès disques
Mais permet de persister les données sur disque ⇒ capable de redémarrer après un crach

13/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Stockage des données


Redis conserve l’intégralité des données en mémoire vive
⇒ permet d’obtenir d’excellentes performances en évitant les accès disques
Mais permet de persister les données sur disque ⇒ capable de redémarrer après un crach
RDB (Redis DataBase) : écrire un fichier sur le disque contenant toute la base de données

13/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Stockage des données


Redis conserve l’intégralité des données en mémoire vive
⇒ permet d’obtenir d’excellentes performances en évitant les accès disques
Mais permet de persister les données sur disque ⇒ capable de redémarrer après un crach
RDB (Redis DataBase) : écrire un fichier sur le disque contenant toute la base de données
⇒ un seul fichier ce qui facilite son transport ainsi que sa lecture en cas de restauration
⇒ écriture à un intervalle de temps

13/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Stockage des données


Redis conserve l’intégralité des données en mémoire vive
⇒ permet d’obtenir d’excellentes performances en évitant les accès disques
Mais permet de persister les données sur disque ⇒ capable de redémarrer après un crach
RDB (Redis DataBase) : écrire un fichier sur le disque contenant toute la base de données
⇒ un seul fichier ce qui facilite son transport ainsi que sa lecture en cas de restauration
⇒ écriture à un intervalle de temps
⇒ écrire chaque fois toute la base de données consomme l’espace du disque (les
anciennes sauvegardes s’accumulent)
⇒ risque de perte de données si le serveur tombe en panne entre deux sauvegardes

13/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Stockage des données


Redis conserve l’intégralité des données en mémoire vive
⇒ permet d’obtenir d’excellentes performances en évitant les accès disques
Mais permet de persister les données sur disque ⇒ capable de redémarrer après un crach
RDB (Redis DataBase) : écrire un fichier sur le disque contenant toute la base de données
⇒ un seul fichier ce qui facilite son transport ainsi que sa lecture en cas de restauration
⇒ écriture à un intervalle de temps
⇒ écrire chaque fois toute la base de données consomme l’espace du disque (les
anciennes sauvegardes s’accumulent)
⇒ risque de perte de données si le serveur tombe en panne entre deux sauvegardes
AOF (Append Only File) : log chaque écriture dans un fichier

13/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Stockage des données


Redis conserve l’intégralité des données en mémoire vive
⇒ permet d’obtenir d’excellentes performances en évitant les accès disques
Mais permet de persister les données sur disque ⇒ capable de redémarrer après un crach
RDB (Redis DataBase) : écrire un fichier sur le disque contenant toute la base de données
⇒ un seul fichier ce qui facilite son transport ainsi que sa lecture en cas de restauration
⇒ écriture à un intervalle de temps
⇒ écrire chaque fois toute la base de données consomme l’espace du disque (les
anciennes sauvegardes s’accumulent)
⇒ risque de perte de données si le serveur tombe en panne entre deux sauvegardes
AOF (Append Only File) : log chaque écriture dans un fichier
⇒ enregistre la requête et non pas la donnée
⇒ ce qui prendra beaucoup plus de temps pour restaurer le serveur après un arrêt
⇒ il faut lire et exécuter toutes les requêtes

13/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Stockage des données


Redis conserve l’intégralité des données en mémoire vive
⇒ permet d’obtenir d’excellentes performances en évitant les accès disques
Mais permet de persister les données sur disque ⇒ capable de redémarrer après un crach
RDB (Redis DataBase) : écrire un fichier sur le disque contenant toute la base de données
⇒ un seul fichier ce qui facilite son transport ainsi que sa lecture en cas de restauration
⇒ écriture à un intervalle de temps
⇒ écrire chaque fois toute la base de données consomme l’espace du disque (les
anciennes sauvegardes s’accumulent)
⇒ risque de perte de données si le serveur tombe en panne entre deux sauvegardes
AOF (Append Only File) : log chaque écriture dans un fichier
⇒ enregistre la requête et non pas la donnée
⇒ ce qui prendra beaucoup plus de temps pour restaurer le serveur après un arrêt
⇒ il faut lire et exécuter toutes les requêtes
Combiner RDB & AOF c’est l’option la plus fiable
⇒ transcrire les requêtes avec AOF et une fois par jour sauvegarder la base avec RDB
13/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles
Redis

Réplication et fragmentation de données


Redis offre la réplication via une architecture maître/esclave

14/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Réplication et fragmentation de données


Redis offre la réplication via une architecture maître/esclave
Redis-sentinel est outil de monitoring et de gestion de haute disponibilité
Redis-sentinel permet de promouvoir automatiquement un esclave en maître si ce dernier
est indisponible

14/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Réplication et fragmentation de données


Redis offre la réplication via une architecture maître/esclave
Redis-sentinel est outil de monitoring et de gestion de haute disponibilité
Redis-sentinel permet de promouvoir automatiquement un esclave en maître si ce dernier
est indisponible
Redis permet aussi de fragmenter les données

14/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Dialogue Client-Serveur
Protocole très simple et textuel
Format COMMAND ARG1 [ARG2][ARG3][. . . ]
Client officiel : Redis-cli

15/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Redis

Dialogue Client-Serveur
Protocole très simple et textuel
Format COMMAND ARG1 [ARG2][ARG3][. . . ]
Client officiel : Redis-cli
[Link] pour tester Redis

15/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Plan

1 Modèles distribués

2 Avantages et inconvénients

3 Redis

4 Structures de données

16/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Structures de données

Keys
Strings
Hashes
Sets
Sorted Sets
Lists
Geo
HyperLogLog

17/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Clé - key

keys
exists
expire
ttl
rename
type
del
persist

18/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Clé - key

keys
exists
expire
ttl
rename
type
del
persist

18/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Clé - key

keys
exists
expire
ttl
rename
type
del
persist

18/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Strings

get / set / getset


mget
mset
incr / decr
incrby

19/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Strings

get / set / getset


mget
mset
incr / decr
incrby

19/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Strings

get / set / getset


mget
mset
incr / decr
incrby

19/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Strings

get / set / getset


mget
mset
incr / decr
incrby

19/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Strings

get / set / getset


mget
mset
incr / decr
incrby
L’utilisation la plus répondue : cache
Compteur, nombre de visiteurs sur une
page (ICR/DECR)
Gestion de stock, nombre de produit
disponible

19/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Hashes

Un tableau clé → valeur


hset / hget / hdel
hmget / hgetall
hkeys / hvals
hincrby / hexists

20/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Hashes

Un tableau clé → valeur


hset / hget / hdel
hmget / hgetall
hkeys / hvals
hincrby / hexists

20/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Hashes

Un tableau clé → valeur


hset / hget / hdel
hmget / hgetall
hkeys / hvals
hincrby / hexists

20/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Hashes

Un tableau clé → valeur


hset / hget / hdel
hmget / hgetall
hkeys / hvals
hincrby / hexists

20/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Sets

clé → {valeurs uniques}


sadd / srem /smembers
scard / sismember
sdiff / sdiffstore / sinter /
sinterstore
sunion / sunionstore

21/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Sets
clé → {valeurs uniques}
sadd / srem /smembers
scard / sismember
sdiff / sdiffstore / sinter /
sinterstore
sunion / sunionstore

21/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Sets
clé → {valeurs uniques}
sadd / srem /smembers
scard / sismember
sdiff / sdiffstore / sinter /
sinterstore
sunion / sunionstore

21/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Sets
clé → {valeurs uniques}
sadd / srem /smembers
scard / sismember
sdiff / sdiffstore / sinter /
sinterstore
sunion / sunionstore

21/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Sets
clé → {valeurs uniques}
sadd / srem /smembers
scard / sismember
sdiff / sdiffstore / sinter /
sinterstore
sunion / sunionstore
Système de tags (vidéo
php + html +css)
Segmentation d’utilisateur
(qui a acheté un produit
informatique le mois
dernier?)

21/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Sorted Sets
clé →
{valeurs uniques et triées}
zadd / zrem
zrange / zrangebyscore
zcard / zrank / zcount
zinter / zunion

22/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Sorted Sets
clé →
{valeurs uniques et triées}
zadd / zrem
zrange / zrangebyscore
zcard / zrank / zcount
zinter / zunion

22/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Sorted Sets
clé →
{valeurs uniques et triées}
zadd / zrem
zrange / zrangebyscore
zcard / zrank / zcount
zinter / zunion
Création d’index
⇒ Liste des logements
ayant une superficie >
70m2
Leaderboard sur les jeux
⇒ Qui sont les meilleurs ?

22/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Lists

clé → liste chaînée


lpush / lpop
lrange
ltrim
rpush / rpop

23/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Lists

clé → liste chaînée


lpush / lpop
lrange
ltrim
rpush / rpop

23/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Lists

clé → liste chaînée


lpush / lpop
lrange
ltrim
rpush / rpop
Flux RSS
Ne garder que les N
derniers évènements
Timeline sociale

23/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Geo

clé → position en liste


triée
geoadd / geopos /
geohash
geodist
georadius
georadiusbymember

24/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Geo

clé → position en liste


triée
geoadd / geopos /
geohash
geodist
georadius
georadiusbymember
Calculer des distances
Trouver les points les plus
proches

24/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

HyperLogLogs

Extension de Strings
HyperLogLog est une methode pour
compter la cardinalité d’un très grand
ensemble de manière probabiliste avec
très peu de mémoire
pfadd
pfcount

25/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Scripting

Réaliser de LUA
Chaîner les commandes ce qui évite les
allers/retours entre le client et le
serveur
Un script est atomique ⇒ tout ou rien

26/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles


Structures de données

Merci pour votre attention! Des Questions?

27/27 Mohammed Boumediene - INTTIC Bases de Données Non Relationnelles

Vous aimerez peut-être aussi