Redis est un serveur de dictionnaire à distance qui fonctionne comme une base de données en mémoire et un système clé-valeur, supportant divers types de données tels que les strings, hashes, lists et sets. Son utilisation dans des domaines variés comme les systèmes de cache pour les réseaux sociaux et les services de messagerie permet d'optimiser l'efficacité des applications en temps réel grâce à sa rapidité d'accès aux données.
⚡ Bon à savoir
La rapidité d'accès aux données de Redis peut transformer l'efficacité des applications en temps réel, comme les systèmes de cache pour les réseaux sociaux ou les services de messagerie.
Présentation et fonctionnalités de Redis
Redis est un serveur de dictionnaire distant open source permettant de stocker et manipuler efficacement des données en mémoire. Cette base de données NoSQL fonctionne sur un modèle clé-valeur pour des accès ultra-rapides, avec des temps de réponse souvent inférieurs à la milliseconde.
Un large choix de structures de données
Bien plus qu'un simple stockage clé-valeur, Redis prend en charge de nombreux types de données pour modéliser efficacement vos applications :
- Les Strings pour stocker tout type de valeur (texte, binaire, entiers, flottants...) jusqu'à 512 Mo
- Les Hashes représentant des "documents" avec plusieurs champs
- Les Lists et Sets pour des collections de strings ordonnés ou non
- Les Sorted Sets, sets triés selon un score
- Les types hyperspécialisés : Bitmaps, HyperLogLogs...
Cette polyvalence, couplée à un jeu de commandes dédié à chaque type, apporte une grande flexibilité pour concevoir des applications simples et performantes.
Applications pratiques et cas d'utilisation
Redis, le célèbre serveur de cache et magasin de données clé-valeur en mémoire, vient d'annoncer un important changement dans sa stratégie de licence. Depuis ses débuts en 2009, Redis était distribué sous la licence BSD, une licence open source très permissive. Mais à partir de la version 7.4, Redis passe à un modèle de licence double, utilisant la Redis Source Available License v2 (RSALv2) ou la Server Side Public License v1 (SSPLv1).
Ce changement vise principalement à empêcher les grands fournisseurs de cloud de proposer des services managés basés sur Redis sans contribuer en retour au développement du projet. Selon les nouvelles conditions, les fournisseurs de cloud devront conclure un accord commercial avec Redis pour pouvoir proposer Redis version 7.4 et au-delà à leurs clients.
Les conséquences pour les utilisateurs de Redis
Pour les utilisateurs finaux et les développeurs, le code source de Redis restera disponible gratuitement dans l'édition communautaire. Les futures versions open source de Redis unifieront le core Redis avec Redis Stack, incluant des modèles de données avancés comme la recherche, JSON, vecteurs, structures probabilistes, etc. Cela permettra d'utiliser facilement Redis comme un magasin clé-valeur et base de données haute performance.
En revanche, les fournisseurs de cloud ne pourront plus utiliser librement le code source de Redis pour leurs offres managées. Ils devront négocier une licence commerciale avec Redis pour livrer Redis 7.4+ à leurs clients. Microsoft a déjà conclu un tel accord pour son service Azure Cache for Redis.
Les raisons invoquées par Redis
Redis estime que malgré ses investissements importants dans le développement open source, la majorité des revenus commerciaux liés à Redis provient des services cloud de grands acteurs qui n'ont pas contribué au projet. Le double modèle de licence permettra de mieux protéger les investissements de Redis tout en continuant à fournir une version open source riche en fonctionnalités.
Redis était jusqu'à présent développé principalement par la société Redis Labs (devenue Redis), avec le soutien d'une communauté open source. Mais le modèle de gouvernance communautaire s'est révélé difficile à concilier avec l'objectif de diriger l'avenir de Redis de manière unifiée sur site et dans le cloud.
Une tendance de fond dans l'open source
Ce changement de stratégie de Redis n'est pas une surprise. D'autres projets open source majeurs comme MongoDB, Elastic ou Confluent ont fait des mouvements similaires ces dernières années pour mieux contrôler l'usage commercial de leur technologie.
Cela reflète les défis auxquels sont confrontées les entreprises qui investissent massivement dans l'open source pour innover, mais peinent à en tirer des bénéfices face aux géants du cloud qui exploitent leur technologie. Trouver le juste équilibre entre ouverture et soutenabilité économique reste un enjeu clé pour l'écosystème open source.
Avantages et considérations pour l'intégration de Redis
Redis, la célèbre base de données en mémoire vive utilisée par des millions de développeurs à travers le monde, a récemment annoncé un changement majeur dans sa politique de licence. Historiquement distribuée sous la licence BSD à 3 clauses, une licence open source permissive, Redis a décidé de s'éloigner de cette dernière pour adopter une approche de licence duale à partir de la version 7.4.
En vertu de la nouvelle licence, les fournisseurs de services cloud hébergeant des offres Redis ne seront plus autorisés à utiliser gratuitement le code source de Redis. Par exemple, ces fournisseurs ne pourront livrer Redis 7.4 qu'après avoir accepté des conditions de licence spécifiques avec Redis, les responsables du code.
Une nouvelle stratégie de licence avec un accord commercial avec Microsoft
La nouvelle stratégie de licence utilise la Redis Source Available License version 2 (RSALv2) ou la Server Side Public License version 1 (SSPLv1). Ce changement vise clairement à empêcher les grands fournisseurs de cloud de proposer des alternatives gratuites aux services hébergés de Redis.
Microsoft est d'ailleurs la première entreprise à avoir conclu un accord commercial avec Redis suite à ce changement. De plus, Redis a également annoncé l'acquisition du moteur de stockage Speedb pour étendre ses capacités au-delà du stockage en mémoire.
Les raisons invoquées par Redis
Redis explique que malgré les efforts pour soutenir un modèle de gouvernance dirigé par la communauté, le fait de fournir simultanément plusieurs distributions logicielles (open source, disponible en source, commerciales) entre en contradiction avec sa capacité à diriger avec succès l'avenir de Redis.
Avec cette nouvelle licence, le code source de Redis restera disponible gratuitement pour les développeurs via la Redis Community Edition. Les futures versions unifieront le coeur de Redis avec Redis Stack, incluant les modèles de données de recherche, JSON, vectoriels, etc. dans un package gratuit et facile à utiliser.
Une situation prévisible ?
D'une certaine manière, cette décision n'est pas surprenante. D'autres sociétés open source comme MongoDB, Elastic et Confluent ont pris des mesures similaires ces dernières années pour protéger leurs investissements.
Redis est conscient de la façon dont ce changement peut être perçu par la communauté open source. Son PDG Rowan Trollope explique avoir informé de nombreux clients sans rencontrer de controverse. Il souligne que Redis prévoit de continuer à travailler de manière ouverte et permettre à n'importe quelle entreprise de déployer la version open source.
"Je ne serais pas surpris qu'Amazon sponsorise un fork", a-t-il ajouté. "Nos portes sont ouvertes pour que Google et Amazon puissent obtenir une licence pour le logiciel. Ce n'est pas qu'ils ne peuvent pas continuer à distribuer Redis, ils doivent simplement conclure un accord commercial avec nous".
Avec ce changement de licence, Redis consolide également Redis Stack et Redis Community Edition en une seule distribution, ce qui devrait faciliter l'utilisation des utilisateurs.
Un outil puissant pour des applications performantes
Redis se révèle être un outil précieux pour optimiser les performances des applications nécessitant un accès rapide aux données. Sa haute disponibilité et sa réplication des données offrent une efficacité optimale en lecture. Néanmoins, il est nécessaire de prendre en compte certains aspects comme la gestion de la mémoire vive et la planification de la continuité de service. Les évolutions futures de Redis pourraient apporter de nouvelles fonctionnalités pour répondre aux besoins croissants des applications modernes, tout comme optimiser vos bases MongoDB.