La plupart des projets in­for­ma­tiques font appel à des bases de données re­la­tion­nelles. Que ce soit dans le webdesign ou dans le dé­ve­lop­pe­ment logiciel, les bases de données basées sur des tableaux four­nis­sent de bons résultats dans la plupart des scénarios. Mais sont-elles toujours la meilleure solution ? Ces dernières années, un nombre croissant de bases de données se dé­mar­quant par des atouts bien par­ti­cu­liers a fait son ap­pa­ri­tion sur le marché. Les bases de données NoSQL sont tout par­ti­cu­liè­re­ment re­com­man­dées pour certains projets. C’est ce type de bases de données qu’offre Redis. Comment fonc­tionne cette mémoire de données et quels sont les avantages de Redis ?

Ex­pli­ca­tion des bases de données Redis

Le nom Redis vient de Remote Dic­tio­nary Server. Ce type de serveur est idéal lorsqu’il est utilisé comme mémoire de données rapide. Le système de gestion de base de données (SGBD) Redis propose également une base de données en mémoire et un système clé-valeur.

  • Base de données en mémoire : ces bases de données per­met­tent au SGBD d’en­re­gis­trer toutes les données di­rec­te­ment dans la mémoire vive. Ceci permet des délais d’accès très courts – même en cas de grands volumes de données non struc­tu­rées.
  • Système clé-valeur : les bases de données clé-valeur séduisent par leur per­for­mance élevée et leur pos­si­bi­lité de mise à l’échelle grâce à une structure simple. Une clé per­met­tant de consulter les in­for­ma­tions a pos­te­riori est créée pour chaque entrée.

Dans le cas d’un serveur Redis, toutes les données ne sont donc pas situées sur le disque dur, mais dans la mémoire vive. Du fait de ce choix, Redis est aussi bien une mémoire cache qu’une mémoire vive : Redis ne fait aucune dis­tinc­tion entre les in­for­ma­tions stockées dans la base de données du­ra­ble­ment ou uni­que­ment à court terme.

Chaque entrée de la base de données se voit attribuer une clé. Elle permet de consulter les données ul­té­rieu­re­ment en toute sim­pli­cité. Les entrées ne sont donc pas liées les unes aux autres et ne doivent donc pas être in­ter­ro­gées dans plusieurs tableaux. Les in­for­ma­tions sont di­rec­te­ment dis­po­nibles.

Du fait de l’en­re­gis­tre­ment dans la mémoire vive, il existe toutefois un risque de perte de l’ensemble des données en cas de panne du serveur. Afin d’éviter cela, Redis peut soit dupliquer ré­gu­liè­re­ment toutes les données sur un disque dur de sau­ve­garde soit en­re­gis­trer toutes les commandes né­ces­saires à une re­cons­truc­tion dans un fichier journal.

Avec Redis, les données sont struc­tu­rées en strings, c’est-à-dire des suites de ca­rac­tères simples. Les clés (qui cons­ti­tuent une partie du système clé-valeur) sont également réalisées sous la forme de strings. Le système peut toutefois également supporter d’autres struc­tures de données :

  • strings : une suite de ca­rac­tères d’une taille maximale de 512 Mo
  • hashes : une entrée avec plusieurs champs
  • lists : un ensemble de strings triés par ordre de saisie
  • sets : un ensemble de strings non triés
  • sorted sets : un ensemble de strings triés par l’uti­li­sa­teur
  • bitmaps : un ensemble d’opé­ra­tions au niveau des bits
  • Hy­per­Lo­gLogs : une es­ti­ma­tion basée sur des valeurs précises
  • Streams : une liste de strings ou de paires clé-valeur complexes

Comme Redis est en open source, de nombreux dé­ve­lop­peurs tra­vail­lent à des ex­ten­sions de ce SGBD. Ces modules étendent les fonc­tion­na­li­tés de cette base de données nor­ma­le­ment très mi­ni­ma­liste et per­met­tent d’ajuster le logiciel pour des domaines d’uti­li­sa­tion spé­ci­fiques.

Remarque

Redis est en open source et peut être utilisé gra­tui­te­ment par tout un chacun. Le principal financeur de Redis est l’en­tre­prise Redis Labs qui propose des versions cloud payantes du logiciel.

Quels sont les prin­ci­paux champs d’ap­pli­ca­tion de Redis ?

Le scénario standard de Redis est une mémoire cache. C’est notamment pour cette raison que Twitter utilise cette base de données : la chro­no­lo­gie de ce service de mi­cro­blo­gage est par exemple assurée par une mémoire cache Redis. En principe, cette chro­no­lo­gie est composée d’une liste qui, grâce à Redis, peut être consultée ra­pi­de­ment et est ex­ten­sible de façon in­cré­men­tielle.

Mais Redis peut également être utilisé à d’autres fins : grâce à sa vitesse d’accès élevée, une base de données Redis se révèle par exemple idéale pour les services de mes­sa­ge­rie ou les tchats. Les nouvelles entrées peuvent être pré­sen­tées en temps réel. Les listes devant être modifiées à brève échéance sont également mises en œuvre avec Redis.

Conseil

Vous êtes séduit par Redis et vous souhaitez utiliser cette base de données pour votre projet ? Dans notre tutoriel Redis, vous en ap­pren­drez davantage sur les premiers pas avec ce système de gestion.

Avantages et in­con­vé­nients de Redis

Redis constitue toujours un choix judicieux lorsque vous souhaitez accéder ra­pi­de­ment à des données simples. La du­pli­ca­tion des données par défaut augmente encore la vitesse de lecture : les données peuvent être lues par dif­fé­rentes instances. Par ailleurs, la mise à l’échelle, ho­ri­zon­tale ou verticale, fonc­tionne très bien avec Redis. Si la mémoire vive du serveur Redis ne suffit pas, le logiciel dispose d’un système de gestion de mémoire virtuelle intégré qui dé­lo­ca­lise les données sur le disque dur. Redis est codé en C. Il existe toutefois des clients pour presque chaque langage de pro­gram­ma­tion.

En revanche, Redis n’est pas un choix idéal lorsque l’on travaille avec des données complexes né­ces­si­tant des pos­si­bi­li­tés d’in­ter­ro­ga­tion tout aussi étendues. En principe, les données au sein d’un système clé-valeur ne peuvent être adressées qu’à l’aide de leur clé. Par ailleurs, Redis (à l’instar des autres bases de données en mémoire) a besoin d’une mémoire vive très im­por­tante ce qui peut se révéler coûteux. Il faut par ailleurs prévoir davantage d’espace que ce que re­pré­sen­tent vé­ri­ta­ble­ment les données.

Résumé

Lorsque des données doivent être écrites et in­ter­ro­gées ra­pi­de­ment, Redis constitue une al­ter­na­tive efficace aux bases de données re­la­tion­nelles clas­siques. En revanche, si la vitesse n’est pas un élément clé et si vous re­cher­chez une base de données pour des tâches plus complexes, vous devriez en rester à l’approche tra­di­tion­nelle.

Aller au menu principal