Accueil les sujets Qu'est-ce que Redis ? Qu'est-ce que Redis ?
Découvrez les fonctions et les avantages de Redis comme solution de gestion de base de données d'entreprise.
illustration d'un demi-cercle bleu
Qu'est-ce que Redis ?

Redis (REmote DIctionary Server) (lien externe à IBM) est un magasin de clés/valeurs NoSQL, en mémoire et open source, utilisé principalement comme cache d'application ou base de données à réponse rapide. Comme il stocke les données en mémoire, plutôt que sur un SSD (Solid-State Drive), Redis offre une vitesse, une fiabilité et des performances inégalées.

Lorsqu'une application utilise des sources de données externes, la latence et le débit de ces sources peuvent créer un goulot d'étranglement au niveau des performances, en particulier lorsque le trafic augmente ou que l'application est mise à l'échelle. Une façon d'améliorer les performances dans ce cas, est de stocker et de manipuler les données en mémoire, physiquement plus proche de l'application. Redis est conçu pour cette tâche : il stocke toutes les données en mémoire, afin d'obtenir les performances les plus rapides possibles lors de la lecture ou de l'écriture de données, et offre des fonctionnalités de réplication intégrées qui vous permettent de placer les données physiquement plus près de l'utilisateur pour bénéficier d'une latence minime.

La prise en charge de plusieurs structures de données, le scriptage Lua intégré, plusieurs niveaux de persistance sur le disque et la haute disponibilité sont d'autres caractéristiques de Redis qui méritent d'être soulignées.

Fonctionnalités de différenciation

Redis se distingue des magasins de données NoSQL « traditionnels » en tant que composant auxiliaire conçu spécifiquement pour améliorer les performances des applications. Voici quelques fonctionnalités de différenciation de Redis :

Sessions en cache Redis

Là encore, contrairement aux bases de données NoSQL telles que MongoDB et PostreSQL, Redis stocke les données dans la mémoire principale du serveur et non pas sur des disques durs et des disques SSD. Ainsi, les temps de réponse sont nettement plus rapides lors des opérations de lecture et d'écriture. Il contribue également à garantir la haute disponibilité (avec Redis Sentinel - voir ci-dessous) et à l'évolutivité des services et des charges de travail des applications.

Files d'attente Redis

Redis peut mettre en file d'attente les tâches qui peuvent prendre plus de temps que d'habitude à traiter pour les clients Web. La mise en file d'attente de tâches multiprocessus est courante dans de nombreuses applications Web actuelles, et Redis facilite la mise en œuvre de processus automatisés écrits en Python qui s'exécutent en arrière-plan des cycles de demande/réponse.

Types de données Redis

Bien qu'il s'agisse techniquement d'un magasin clé/valeur, Redis est un véritable serveur de structures de données qui prend en charge plusieurs types et structures de données, notamment :

  • Éléments de chaîne uniques et non triés

  • Données binaires sécurisées

  • HyperLogLogs

  • Tableaux de bits

  • Hachages

  • Listes

Gestion de client Redis

Redis dispose de fonctionnalités natives d'intégration de client pour permettre aux développeurs de manipuler et d'interagir avec leurs données. Il existe actuellement plus de 100 clients open source différents disponibles dans la bibliothèque de clients Redis. Les développeurs peuvent facilement ajouter de nouvelles intégrations pour prendre en charge des fonctionnalités et des langages de programmation supplémentaires.

Fonctions

Certaines des fonctions les plus importantes ou remarquables de Redis :

Redis Sentinel

Redis Sentinelle (lien externe à IBM) est un système distribué autonome qui permet aux développeurs de calibrer leurs instances pour qu'elles soient hautement disponibles pour les clients. Sentinel utilise une série de processus de surveillance, de notifications et de basculements automatiques pour informer les utilisateurs en cas de problème de fonctionnement au niveau des instances principales et secondaires, tout en reconfigurant automatiquement de nouvelles connexions pour les applications, si nécessaire.

Cluster Redis

Un cluster Redis (lien externe à IBM) est une implémentation distribuée de Redis qui répartit automatiquement les ensembles de données entre plusieurs nœuds. Ainsi, les performances et l'évolutivité des déploiements de bases de données s'en trouvent améliorées, tout en garantissant la continuité des opérations dans le cas où les sous-ensembles de nœuds ne peuvent pas communiquer avec le reste du cluster.

Publication/abonnement Redis

Comme Redis prend en charge l'utilisation des commandes de publication et d'abonnement (Pub/Sub) (lien externe à IBM), les utilisateurs peuvent concevoir des services de discussion en ligne et de messagerie très performants dans toutes leurs applications et tous leurs services. Ainsi, il est également possible d'utiliser des structures de données en liste pour exécuter des opérations atomiques et des fonctionnalités de blocage.

Persistance Redis

Redis utilise un stockage sur disque persistant (lien externe à IBM) qui survit aux indisponibilités de processus et aux goulots d'étranglement du réseau. Redis peut faire persister des ensembles de données en utilisant des instantanés des données standard et en y ajoutant les changements dès qu'ils sont disponibles. Redis peut être ensuite configuré pour générer ces sauvegardes de base de données à la demande ou à régulièrement automatiquement, afin de garantir la durabilité et l'intégrité de la base de données.

Redis et Memcached

Redis et Memcached sont tous les deux des magasins de données en mémoire open source, mais ils diffèrent en termes d'avantages et de fonctions. Memcached est souvent le choix privilégié pour les applications simples nécessitant moins de ressources mémoire, mais il est limité lorsqu'il s'agit de stocker des données sous leur forme sérialisée. L'utilisation de structures de données par Redis offre beaucoup plus de puissance lorsqu'il s'agit de travailler avec de grands jeux ensemble de données et permet d'affiner le contenu du cache et de maintenir une plus grande efficacité dans des scénarios d'application spécifiques.

Redis et MongoDB

Si Redis est un magasin de base de données en mémoire, MongoDB est un magasin de documents sur disque. Bien que ces deux solutions soient conçues à des fins différentes, elles sont souvent utilisées ensemble pour maximiser la vitesse et l'efficacité d'une base de données NoSQL. Grâce à sa capacité de mise en cache, Redis peut localiser les données requises extrêmement rapidement, servant de tampon d'ingestion qui rend MongoDB plus efficace et capable de gérer des fréquences plus élevées de mises à jour de documents en quasi temps réel. Grâce à la capacité de MongoDB de stocker d'importantes quantités de données et à celle de Redis de les traiter plus rapidement, cette association offre une solution de gestion de base de données puissante pour divers cas d'utilisation.

Cas d'utilisation

Voici quelques cas d'utilisation courants dont les entreprises bénéficient avec Redis :

  • Analytique en temps réel : Redis pouvant traiter les données avec une latence inférieure à la milliseconde, il est idéal pour l'analyse en temps réel, les campagnes publicitaires en ligne et les processus de machine learning basé sur l'IA.

  • Applications basées sur la localisation : Redis simplifie le développement d'applications et de services basés sur la localisation en fournissant une indexation, des ensembles et des opérations géospatiales. En utilisant des ensembles triés, Redis est capable de décharger la recherche et le tri des données de localisation chronophages, tout en utilisant une implémentation intelligente du géocodage des coordonnées géographiques.

  • Mise en cache pour les bases de données : Redis est capable de gérer de grandes quantités de données en temps réel, en utilisant ses fonctionnalités de stockage de données en mémoire pour prendre en charge des constructions de bases de données hautement réactives. La mise en cache avec Redis permet de réduire le nombre d'accès à la base de données, ce qui contribue à diminuer le trafic et le nombre d'instances nécessaires. En utilisant Redis pour la mise en cache, les équipes de développement peuvent améliorer considérablement le débit de leurs applications en atteignant une latence inférieure à la milliseconde. Et comme la couche de mise en cache de Redis peut être mise à l'échelle rapidement et économiquement, les organisations sont en mesure de développer ces applications hautement réactives tout en réduisant leurs dépenses globales.
Installation de Redis

Le démarrage avec Redis est un processus assez simple, notamment grâce à l'utilisation de Redis Desktop Manager (RDM) (lien externe à IBM). Et comme Redis et RDM sont des logiciels open source, des communautés de développement actives travaillent en permanence pour améliorer l'efficacité de leur fonctionnement et faire évoluer en permanence les outils et les intégrations pris en charge.

Pour plus d'informations sur l'installation et la configuration de Redis, suivez les instructions de configuration dans la communauté (lien externe à IBM).

Solutions connexes
IBM Cloud® Databases for Redis

Un magasin de valeurs de clé en mémoire open source, conçu pour la pile d'applications moderne

Explorer IBM Cloud Databases for Redis
Comment choisir une base de données sur IBM Cloud

Vidéo du webinaire montrant comment choisir la base de données appropriée pour votre application cloud native.

Qu'est-ce qu'une base de données NoSQL ?

Tout ce que vous devez savoir sur NoSQL, un type de conception de base de données qui offre plus de flexibilité que les bases de données traditionnelles.

Qu'est-ce que MongoDB ?

Ce guide explore les caractéristiques et les avantages de l'utilisation de MongoDB dans le cadre de votre solution de gestion des bases de données d'entreprise.

Pour aller plus loin

Bases de données IBM Cloud est une solution entièrement gérée pour implémenter les puissantes fonctionnalités de mise en cache en mémoire de Redis dans votre pile d'applications modernes. Databases for Redis est une solution prête à l'emploi qui vous permet de mettre à l'échelle le disque et la RAM de manière indépendante, ce qui vous donne la flexibilité nécessaire pour répondre aux demandes de ressources croissantes des applications les plus innovantes.

En savoir plus sur IBM Cloud Databases for Redis