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.
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 :
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.
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.
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 :
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.
Certaines des fonctions les plus importantes ou remarquables de Redis :
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.
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.
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.
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 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.
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.
Voici quelques cas d'utilisation courants dont les entreprises bénéficient avec 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).
Un magasin de valeurs de clé en mémoire open source, conçu pour la pile d'applications moderne
Vidéo du webinaire montrant comment choisir la base de données appropriée pour votre application cloud native.
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.
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.