Redis : stockez des clés/valeurs en mémoire (mais pas que)

Et vous, combien de Mops ?
Redis : stockez des clés/valeurs en mémoire (mais pas que)

Lorsque l'on parle de bases de données, on pense assez logiquement à MySQL, PostgreSQL, SQL Server, Oracle et pourquoi pas à MariaDB, MongoDB ou Cassandra. Mais il en est une, un peu spéciale, qui s'est fait remarquer ces dernières années : Redis. Beaucoup utilisée comme cache, elle a bien d'autres atouts.

Redis, pour REmote DIctionnary Server, est un système de gestion de base de données (SGBD) créé en 2009 par Salvatore Sanfilippo. Il s'agit d'un outil open source (licence BSD-3), développé en C, pensé avant tout pour la performance et pour cause : par défaut, il utilise la mémoire du système comme espace de stockage principal.

Utiliser la mémoire pour des millions d'opérations par seconde

Cette dernière a l'avantage d'être très rapide, avec des débits de plusieurs centaines de Go/s sur des systèmes à huit canaux. Mais aussi en latence, qui est de l'ordre de quelques dizaines de nanosecondes. Là où les meilleurs SSD PCIe/NVMe culminent à 8 Go/s et quelques dizaines de millisecondes, à quelques exceptions près.

Bref, ça va vite et c'est très efficace. Mais il y a un prix à payer : les données en mémoire disparaissent lorsque le système redémarre, elles ne sont pas écrites définitivement. Ainsi, Redis est le plus souvent utilisé pour des usages où il faut avant tout de la performance mais où la durabilité des données n'est pas le critère essentiel.

Sur le site officiel, quelques cas d'usages sont évoqués comme la détection de fraude, la gestion d'inventaire, les statistiques et classements, la messagerie entre des services ou la déduplication. « Redis Enterprise a été soumis à un banc d’essai de traitement de plus de 200 millions d’opérations de lecture/écriture par seconde avec des latences inférieures au millième de seconde, avec seulement une grappe de 40 nœuds sur AWS. Ceci fait de Redis Enterprise la base de données NoSQL la plus efficace en matière de ressources du marché » ajoute l'équipe.

Un cache à tout faire

De manière plus générale, on trouve Redis utilisé comme une sorte de cache, à la manière d'un memcached : mis en relation avec un système de fichiers ou une base de données classiques, il permet de placer facilement une donnée dans la mémoire à son premier accès et de la fournir par son biais ensuite, avec une très faible latence. 

Redis est aidé en cela par les Streams, mis en place dans la version 5.0 afin d'assurer ce genre de lien permanent. Mais surtout par son modèle clé/valeur et sa simplicité qui en font un outil facile à prendre en main et sont à la source d'un écosystème qui est devenu assez complet en 12 ans. De très nombreuses bibliothèques permettent d'utiliser Redis dans à peu près tous les langages, des modules, extensions et plugins sont présents pour des tas d'applications, tant pour des usages triviaux comme un blog Wordpress que dans le HPC.

Il est ainsi devenu central dans les architectures en micro-services et bénéficie à plein régime de la montée en puissance du cloud avec l'accès aisé à des instances équipées de larges quantités de mémoire. Mais il a aussi été complété par cet écosystème qui, tout en le gardant simple, en a fait un outil très puissant.

Il est actuellement le 6e SGBD le plus populaire selon le classement de DB-Engines Ranking, le 1er dans le domaine des modèles clé-valeur. Voyons donc ce qu'il permet dans la pratique, avec quelques exemples.

De simples requêtes TCP, bien documentées

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Abonné
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !