Modules

Les bases de données modernes doivent offrir plusieurs options de modélisation des données dans un seul et unique système de base de données pour éviter les frais généraux et les coûts associés à la gestion d’une base de données différente pour chaque cas d’utilisation dans une application. Cependant, de nombreuses bases de données multi-modèles étendent leurs API tout en conservant leur moteur de base de données inchangé. Cette approche non native affecte considérablement les performances de la base de données car les nouvelles demandes de modèle de données sont traitées selon une logique logicielle qui n’a pas été conçue pour cela. Qui plus est, le traitement des demandes sur plusieurs modèles de données tout en maintenant une latence faible relève du défi et, dans la plupart des cas, nécessite des interactions fastidieuses dans les deux sens avec le niveau d’application ou avec la logique d’infrastructure qui est déployée en dehors de la base de données.

Les modules Redis Enterprise réduisent la nécessité de maintenir une base de données spécialisée pour chaque cas d’utilisation dans une application en offrant un moteur distinct, dédié et optimisé pour chaque modèle de données. Approuvés, testés et vérifiés pour fonctionner avec Redis Enterprise et Redis open source, ces modules incluent RedisGraph, RedisJSON, RedisTimeSeries, RedisBloom et RediSearch. RedisGears est un moteur sans serveur, qui exécute tout type d’opération sur les modules et les structures de données Redis. RedisGears prend en charge plusieurs cas d’utilisation dans des applications et bénéficie de la faible latence et de l’échelle linéaire de Redis Enterprise.

RediSearch

Les moteurs de recherche font preuve de lenteur pour indexer les données et, par conséquent, l’affichage de nouveau contenu dans les résultats de recherche prend beaucoup de temps.

RediSearch est un moteur de recherche rapide qui s’exécute sur votre jeu de données Redis et vous permet d’interroger des données qui viennent d’être indexées pour répondre à des interrogations complexes. Il peut être utilisé comme index secondaire pour les jeux de données hébergés sur d’autres bases de données, comme moteur de recherche de texte rapide ou de saisie semi-automatique et comme moteur de recherche qui alimente d’autres modules tels que RedisGraph et RedisTimeSeries.

Écrit en langage C, basé sur une structure de données moderne et utilisant un protocole Redis efficace, RediSearch est le moteur de recherche le plus rapide du marché. De plus, RediSearch est riche en fonctionnalités et prend notamment en charge le classement, les requêtes booléennes, les géofiltres, les synonymes, les filtres et les plages numériques, l’agrégation, etc. Il vous permet même d’ajouter votre propre code de notation personnalisé.

RedisJSON

Pour stocker un objet JSON dans une implémentation Redis native, vous utilisez une structure de données en chaînes ou la divisez en champs de hachages, imposant une surcharge de traduction à votre application.

RedisJSON fait de JSON une structure de données native dans Redis. Il est conçu pour une manipulation rapide, efficace et en mémoire des documents JSON à grand débit et volume. Résultat, vous pouvez stocker vos données de document dans un format hiérarchique de type arborescent, et les mettre à l’échelle et les interroger efficacement, ce qui améliore considérablement les performances par rapport aux solutions de base de données de documents sur disque existantes.

RedisGears

RedisGears est un moteur programmable pour Redis qui fonctionne à l’intérieur de Redis, plus près de l’endroit où vivent vos données. RedisGears permet des opérations à l’échelle du cluster sur les shards, les nœuds, les structures de données et les modèles de données à une vitesse inférieure à la milliseconde. En utilisant Python, et bientôt Java, Scala et d’autres langages JVM, vous pouvez programmer RedisGears pour 1) prendre en charge des cas d’utilisation avancés de la mise en cache, comme le write-behind/write-through ; 2) contrôler le traitement événementiel de manière fiable ; 3) effectuer des analyses de données en temps réel à l’échelle du cluster ; et 4) orchestrer le service d’intelligence artificielle.

RedisAI

Les charges de travail d’apprentissage automatique et d’inférence de l’IA fonctionnent traditionnellement à partir des couches d’applications ou de services spécialisés. Dans de nombreux cas, l’inférence IA doit être enrichie avec des données de référence qui proviennent d’une base de données. Par conséquent, de multiples allers-retours sont nécessaires entre la couche de service d’application/d’IA et la base de données, ce qui augmente considérablement la latence d’inférence de bout en bout.

RedisAI implémente un moteur d’inférence à l’intérieur de la couche de base de données. Cela permet la localité des données entre le moteur et les données cibles, ce qui réduit drastiquement la latence. De plus, il fournit une couche commune entre différents formats et plateformes, notamment PyTorch, TensorFlow/TensoRT et ONNXRuntime. RedisAI est entièrement intégré aux outils de pipeline AI/ML de pointe, comme MLFlow et bientôt Kubeflow.

RedisGraph

L’exécution de requêtes graphiques à sauts multiples sur des architectures de base de données graphiques traditionnelles est inefficace et lente car celles-ci sont fondées sur des listes de contiguïté, une approche qui n’est pas optimale pour le traitement de données graphiques.

RedisGraph est basé sur une approche et une architecture uniques permettant de traduire les requêtes Cypher en opérations matricielles exécutées sur un moteur GraphBLAS. Ce nouveau concept permet d’exécuter des cas d’utilisation comme le fonctionnement de graphiques sociaux, la détection de fraudes et la recommandation en temps réel entre 10 et 600 fois plus rapidement que toute autre base de données graphiques.

RedisTimeSeries

Les filtres Bloom et Cuckoo, TopK et CountMinSketch sont largement utilisés pour prendre en charge les requêtes d’appartenance aux données, grâce à leur fonctionnalité d’appartenance efficace en termes d’espace et à durée constante. Cela dit, les implémentations de structure de données probabilistes rapides et efficaces ne sont pas faciles à développer.

Des comparatifs ont montré que l’implémentation de Redis pour les filtres Bloom et autres structures de données probabilistes est plus rapide que les autres implémentations probabilistes, et de très loin. Lorsqu’il est déployé sur Redis Enterprise, RedisBloom bénéficie de l’échelle linéaire, du temps de basculement à un chiffre et de la durabilité, avec une distribution facile et des capacités de surveillance intégrées.

RedisBloom

Les filtres Bloom et Cuckoo, TopK et CountMinSketch sont largement utilisés pour prendre en charge les requêtes d’appartenance aux données, grâce à leur fonctionnalité d’appartenance efficace en termes d’espace et à durée constante. Cela dit, les implémentations de structure de données probabilistes rapides et efficaces ne sont pas faciles à développer.

Des comparatifs ont montré que l’implémentation de Redis pour les filtres Bloom et autres structures de données probabilistes est plus rapide que les autres implémentations probabilistes, et de très loin. Lorsqu’il est déployé sur Redis Enterprise, RedisBloom bénéficie de l’échelle linéaire, du temps de basculement à un chiffre et de la durabilité, avec une distribution facile et des capacités de surveillance intégrées.

En savoir plus