Qu’est-ce que Redis ? Présentation de cette base de données

La plupart des projets informatiques font appel à des bases de données relationnelles. Que ce soit dans le webdesign ou dans le développement logiciel, les bases de données basées sur des tableaux fournissent 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émarquant par des atouts bien particuliers a fait son apparition sur le marché. Les bases de données NoSQL sont tout particulièrement recommandées pour certains projets. C’est ce type de bases de données qu’offre Redis. Comment fonctionne cette mémoire de données et quels sont les avantages de Redis ?

Explication des bases de données Redis

Le nom Redis vient de Remote Dictionary 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 permettent au SGBD d’enregistrer toutes les données directement 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 structurées.
  • Système clé-valeur : les bases de données clé-valeur séduisent par leur performance élevée et leur possibilité de mise à l’échelle grâce à une structure simple. Une clé permettant de consulter les informations a posteriori 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 distinction entre les informations stockées dans la base de données durablement ou uniquement à court terme.

Chaque entrée de la base de données se voit attribuer une clé. Elle permet de consulter les données ultérieurement en toute simplicité. Les entrées ne sont donc pas liées les unes aux autres et ne doivent donc pas être interrogées dans plusieurs tableaux. Les informations sont directement disponibles.

Du fait de l’enregistrement 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égulièrement toutes les données sur un disque dur de sauvegarde soit enregistrer toutes les commandes nécessaires à une reconstruction dans un fichier journal.

Avec Redis, les données sont structurées en strings, c’est-à-dire des suites de caractères simples. Les clés (qui constituent 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 structures de données :

  • strings : une suite de caractè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’utilisateur
  • bitmaps : un ensemble d’opérations au niveau des bits
  • HyperLogLogs : une estimation 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éveloppeurs travaillent à des extensions de ce SGBD. Ces modules étendent les fonctionnalités de cette base de données normalement très minimaliste et permettent d’ajuster le logiciel pour des domaines d’utilisation spécifiques.

Pour afficher cette vidéo, des cookies de tiers sont nécessaires. Vous pouvez consulter et modifier vos paramètres de cookies ici.
Remarque

Redis est en open source et peut être utilisé gratuitement par tout un chacun. Le principal financeur de Redis est l’entreprise Redis Labs qui propose des versions cloud payantes du logiciel.

Quels sont les principaux champs d’application 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 chronologie de ce service de microblogage est par exemple assurée par une mémoire cache Redis. En principe, cette chronologie est composée d’une liste qui, grâce à Redis, peut être consultée rapidement et est extensible de façon incrémentielle.

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 messagerie ou les tchats. Les nouvelles entrées peuvent être présenté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 apprendrez davantage sur les premiers pas avec ce système de gestion.

Avantages et inconvénients de Redis

Redis constitue toujours un choix judicieux lorsque vous souhaitez accéder rapidement à des données simples. La duplication des données par défaut augmente encore la vitesse de lecture : les données peuvent être lues par différentes instances. Par ailleurs, la mise à l’échelle, horizontale ou verticale, fonctionne 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élocalise les données sur le disque dur. Redis est codé en C. Il existe toutefois des clients pour presque chaque langage de programmation.

En revanche, Redis n’est pas un choix idéal lorsque l’on travaille avec des données complexes nécessitant des possibilités d’interrogation 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 importante ce qui peut se révéler coûteux. Il faut par ailleurs prévoir davantage d’espace que ce que représentent véritablement les données.

Résumé

Lorsque des données doivent être écrites et interrogées rapidement, Redis constitue une alternative efficace aux bases de données relationnelles classiques. En revanche, si la vitesse n’est pas un élément clé et si vous recherchez une base de données pour des tâches plus complexes, vous devriez en rester à l’approche traditionnelle.