Conçues pour les développeurs et contrairement aux stockages de données clé-valeur simplistes, les structures de données Redis offrent des moyens flexibles de modéliser vos données pour de nombreux cas d’utilisation dans les applications modernes. Ces structures de données sophistiquées vous permettent de développer des applications avec seulement quelques lignes d’un code élégant pour stocker, accéder à vos données et les utiliser, ainsi qu’un traitement en mémoire puissant et rapide.
Ces structures de données évitent la surcharge associée à la traduction entre les objets des applications en entités de base de données pour chaque opération sur les bases de données.
Redis propose des chaînes, des hachages, des listes, des ensembles, des ensembles triés, des bitmaps, des champs de bits, des hyperLogLog, des index spatiaux et des flux sous forme de structures de données natives. Pour chaque structure de données, Redis conserve des commandes dédiées pour permettre l’exécution d’opérations de types multiples de manière efficace.
L’une des pierres angulaires les plus polyvalentes de Redis, Redis Strings est une structure de données à sécurité binaire. Elle permet de stocker tout type de données : une chaîne, un nombre entier, un nombre à virgule flottante, une image JPEG, un objet Ruby sérialisé ou tout autre élément que vous souhaitez qu’elle contienne. Intervenez sur une chaîne tout entière ou bien sur des parties de celle-ci et incrémentez ou décrémentez des nombres entiers et flottants.
Les structures de données de Redis Sets stockent un seul et unique jeu de membres. Avec Sets, vous pouvez ajouter, récupérer ou supprimer des membres, en vérifier l’appartenance ou récupérer un membre aléatoire. Vous pouvez également effectuer des opérations sur les jeux telles que des intersections, des unions, relever des différences sur les ensembles ou encore en calculer la cardinalité.
Redis Sorted Sets contient un seul et unique jeu de membres classés par scores à virgule flottante. Comme pour Sets, vous pouvez ajouter, extraire ou supprimer des membres individuels et effectuer des opérations sur les jeux telles que des unions, des intersections, relever des différences sur les ensembles ou encore en calculer la cardinalité. Vous pouvez également interroger le jeu de données en fonction du score ou de la valeur du membre, de l’agrégat, du filtre et des résultats du classement.
Redis Lists contient des collections d’éléments de chaîne triées selon leur ordre de saisie. Poussez ou éjectez des éléments des deux extrémités, ajustez en fonction des décalages, lisez des éléments individuels ou multiples, ou recherchez ou supprimez des éléments selon leur valeur et position. Vous pouvez également effectuer des appels de blocage pour les transferts de messages asynchrones.
Semblable à des documents dans un stockage de documents ou à des lignes dans une base de données relationnelle, la structure de Redis Hashes stocke un ensemble de paires champ-valeur. Il offre la possibilité d’ajouter, d’extraire ou de supprimer des éléments individuels et d’extraire l’intégralité du hachage ou encore d’utiliser un ou plusieurs champs du hachage, tel un compteur.
Redis Bitmaps est une structure de données compacte pour stocker la logique binaire et les états. Il fournit des commandes permettant d’extraire et de définir une valeur de bit à une position donnée et d’effectuer les opérations AND, OR, XOR et NOT entre plusieurs clés bitmap.
Bitfields offre un moyen efficace et compact de déployer plusieurs compteurs dans un seul et unique tableau. Il permet d’incrémenter et de décrémenter les compteurs à une position donnée et de signaler les débordements lorsque le compteur atteint sa limite supérieure.
Redis HyperLogLog est une structure de données probabiliste utilisée pour compter des valeurs uniques (définir la cardinalité) à une taille de mémoire constante. Vous pouvez ajouter et compter un grand nombre d’éléments uniques sans compromettre l’efficacité de la mémoire et fusionner deux ou plusieurs structures de données HyperLogLog en une seule.
Les index spatiaux constituent un moyen extrêmement efficace et simple de gérer et d’utiliser les données spatiales dans Redis. Vous pouvez ajouter des éléments uniques avec la latitude et la longitude, calculer la distance entre les objets et rechercher des membres dans un rayon donné à partir d’un emplacement.
Redis Streams est une structure de données incroyablement puissante permettant de gérer des flux de données à grand débit (comme une file d’attente de messages). Avec un partitionnement, une réplication et une persistance prêts à l’emploi, il permet de capturer et traiter des millions de points de données à la seconde, avec une latence inférieure au millième de seconde. Redis Streams est basé sur une implémentation efficace de racines d’arborescence, ce qui rend les requêtes de recherche et de plage extrêmement rapides. Il met en relation les producteurs et les consommateurs par le biais d’appels asynchrones et prend en charge des groupes de consommateurs.