Le projet Redis est revenu à l'utilisation d'une licence ouverte. Redis 8.0 est présenté

La sociĂ©tĂ© Redis Ltd a annoncĂ© un changement de sa politique de licence pour le projet. À partir de la version 8.0 de Redis, le code du projet est dĂ©sormais disponible sous la licence libre AGPLv3. Le passage Ă  une licence ouverte a Ă©tĂ© rendu possible grĂące au retour de Salvatore Sanfilippo, le crĂ©ateur de la base de donnĂ©es Redis, au sein de l'entreprise. AprĂšs son dĂ©part de Redis Ltd, Salvatore avait dĂ©veloppĂ© un ensemble d'extensions vectorielles (Vector Sets), qu'il Ă©tait prĂȘt Ă  intĂ©grer dans Redis, mais souhaitait que le code qu'il avait créé soit fourni sous une licence ouverte. Salvatore a rĂ©ussi Ă  convaincre ses collĂšgues de la pertinence de rĂ©tablir la nature ouverte du projet et d'amĂ©liorer l'interaction avec la communautĂ©.

Rowan Trollope, directeur de Redis Ltd, a déclaré que la transition l'année derniÚre vers des licences propriétaires avait atteint son objectif, car les entreprises AWS et Google ont créé un fork, ont commencé à participer au développement collaboratif et à partager leurs travaux précédents. Cependant, ce changement de licences a nui aux relations avec la communauté, que l'entreprise tentera désormais de rétablir en revenant à la fourniture du code sous une licence libre.

AprÚs le passage à des licences propriétaires, le développement de la base de code ouverte de Redis a continué dans les forks Valkey (un fork développé avec la participation d'Amazon, Google, Oracle, Ericsson et Snap), Redict (un fork de l'auteur de l'interface utilisateur Sway et du langage Hare), Garnet (une base de données de Microsoft compatible avec Redis) ou KeyDB (un fork haute performance de Redis 5 développé par Snapchat). Dans les dépÎts des distributions Debian 13, Ubuntu 24.10, Fedora 41, RHEL 10, Azure Linux 3, Arch Linux et Alpine 3.20, le paquet Redis a été remplacé par le fork Valkey.

Initialement, Redis Ă©tait distribuĂ© sous une licence permissive BSD, autorisant les modifications sans obligation de les divulguer. Il est ensuite passĂ© Ă  des licences propriĂ©taires RSALv2 (Redis Source Available License v2) et SSPLv1 (Server Side Public License v1). À partir de Redis 8, le code du projet est disponible sous la licence AGPLv3, qui se distingue par des restrictions pour les applications fournissant des services rĂ©seau. Lorsque des composants AGPL sont utilisĂ©s dans des services rĂ©seau, le dĂ©veloppeur est tenu de fournir Ă  l'utilisateur le code source de toutes les modifications apportĂ©es Ă  ces composants, mĂȘme si le logiciel sous-jacent n'est pas distribuĂ© et est utilisĂ© exclusivement dans une infrastructure interne pour faire fonctionner le service. La licence AGPLv3 est compatible avec la GPLv3, mais est en conflit avec la GPLv2.

Les licences SSPL et RSAL prĂ©cĂ©demment utilisĂ©es conduisaient Ă  la discrimination de certaines catĂ©gories d'utilisateurs, ce qui ne permettait pas de les considĂ©rer comme ouvertes ou libres. Dans leurs objectifs, les deux licences se ressemblent, les diffĂ©rences se rĂ©sumant au fait que la licence SSPL est basĂ©e sur la licence copyleft AGPLv3, tandis que la licence RSAL est basĂ©e sur la licence permissive BSD. La licence RSAL permet d'utiliser, de modifier, de distribuer et d'intĂ©grer le code dans des applications, sauf lorsque ces applications sont commerciales ou utilisĂ©es pour fournir des services gĂ©rĂ©s payants. La licence SSPL contient en outre l'exigence de fournir, sous la mĂȘme licence, non seulement le code de l'application elle-mĂȘme, mais aussi les textes sources de tous les composants impliquĂ©s dans la fourniture du service cloud.

En mĂȘme temps que l'annonce du changement de licence, la version Redis 8.0 a Ă©tĂ© publiĂ©e. Cependant, malgrĂ© l'annonce de la disponibilitĂ© de la version, le rĂ©fĂ©rentiel ne contient pour l'instant qu'un candidat de version, et le lien pour tĂ©lĂ©charger Redis 8.0 sur le site du projet mĂšne Ă  une page dĂ©crivant le processus d'installation en gĂ©nĂ©ral. La note de version indique Ă©galement pour l'instant uniquement le lancement de 8.0-RC1.

Principales modifications dans Redis 8.0 :

  • Un type de stockage pour les ensembles de donnĂ©es vectorielles, requis dans les systĂšmes d'apprentissage automatique et de recherche sĂ©mantique, a Ă©tĂ© ajoutĂ©. Les ensembles de vecteurs (vector set) Ă©tendent la fonctionnalitĂ© prĂ©cĂ©demment disponible des listes triĂ©es (sorted set) en permettant le stockage de vecteurs multidimensionnels. Pour manipuler les donnĂ©es vectorielles, 11 nouvelles commandes ont Ă©tĂ© ajoutĂ©es, telles que VADD, VREM et VSIM.
  • Les modules Redis Query Engine, JSON, Time Series et Probabilistic Data Types, prĂ©cĂ©demment fournis sous forme d'extensions sĂ©parĂ©es de Redis Stack, ont Ă©tĂ© intĂ©grĂ©s au cƓur de Redis.
  • La prise en charge de la structure de donnĂ©es JSON a Ă©tĂ© intĂ©grĂ©e, permettant de stocker des documents au format JSON en lien avec des clĂ©s dans Redis. Pour l'extraction sĂ©lective de documents JSON et l'accĂšs Ă  des Ă©lĂ©ments individuels, le langage de requĂȘte JSONPath peut ĂȘtre utilisĂ©. La prise en charge des mises Ă  jour atomiques permet d'apporter des modifications Ă  des champs spĂ©cifiques d'un document JSON sans avoir Ă  charger l'intĂ©gralitĂ© du document.
  • La prise en charge de structures de donnĂ©es sous forme de sĂ©ries temporelles a Ă©tĂ© ajoutĂ©e (un enregistrement constitue le temps et un ensemble de valeurs y correspondant, par exemple, obtenues par interrogation pĂ©riodique de l'Ă©tat des capteurs ou collecte de mĂ©triques). Pour rĂ©duire la consommation de mĂ©moire, des algorithmes de compression de ces donnĂ©es ont Ă©tĂ© mis en Ɠuvre et la possibilitĂ© de dĂ©finir des rĂšgles de dĂ©cimation des donnĂ©es archivĂ©es (downsampling) a Ă©tĂ© fournie.
  • Des structures de donnĂ©es probabilistes ont Ă©tĂ© ajoutĂ©es : filtre de Bloom, filtre de Cuckoo, sketch Count-min, Top-k et t-digest, permettant de rĂ©duire considĂ©rablement la taille de stockage lors de la nĂ©cessitĂ© de conserver de trĂšs grands volumes de donnĂ©es, au prix d'une perte de prĂ©cision lors de certaines opĂ©rations. Le « filtre de Bloom » et le « filtre de Cuckoo » permettent de vĂ©rifier l'appartenance Ă  un ensemble, en admettant de fausses dĂ©tections d'Ă©lĂ©ments manquants, mais en excluant le passage d'un Ă©lĂ©ment existant. Le « sketch Count-min » prĂ©voit le nombre de mentions d'une valeur dans un ensemble. Le « Top-k » permet de trouver les valeurs les plus frĂ©quentes. Le « t-digest » permet d'effectuer des Ă©chantillons de valeurs, supĂ©rieures ou infĂ©rieures Ă  une valeur donnĂ©e.
  • Le moteur « Redis Query Engine » a Ă©tĂ© intĂ©grĂ©, prenant en charge la recherche vectorielle et offrant des possibilitĂ©s de filtrage basĂ© sur le contenu plutĂŽt que sur les clĂ©s. Redis Query Engine permet de crĂ©er des index supplĂ©mentaires pour les donnĂ©es stockĂ©es dans des hachages et des documents JSON.
  • La prise en charge des ACL (Listes de ContrĂŽle d'AccĂšs) a Ă©tĂ© Ă©largie, permettant de gĂ©rer l'accĂšs aux donnĂ©es sur la base de clĂ©s et permettant de dĂ©finir diffĂ©rents ensembles de rĂšgles d'accĂšs aux commandes avec la possibilitĂ© de lier des ensembles de privilĂšges Ă  chaque utilisateur. Par exemple, avec les ACL, il est possible de dĂ©terminer quels utilisateurs peuvent se connecter Ă  Redis, quels clĂ©s un utilisateur peut accĂ©der et quelles commandes il peut exĂ©cuter. Redis 8 a ajoutĂ© de nouvelles catĂ©gories d'ACL pour de nouvelles structures de donnĂ©es.
  • Nouvelles commandes ajoutĂ©es pour travailler avec des hachages :
    • HGETDEL — dĂ©livrer et supprimer des champs d'un hachage en fonction de la clĂ© spĂ©cifiĂ©e.
    • HGETEX — dĂ©livrer des champs d'un hachage en fonction de la clĂ© spĂ©cifiĂ©e et indiquer leur durĂ©e de vie.
    • HSETEX — dĂ©finir des champs d'un hachage en fonction de la clĂ© spĂ©cifiĂ©e et indiquer leur durĂ©e de vie.
  • Plus de 30 optimisations de performance ont Ă©tĂ© apportĂ©es, entraĂźnant dans certains tests une accĂ©lĂ©ration de l'exĂ©cution des commandes de 87%, une augmentation de la capacitĂ© de traitement de 112%, une accĂ©lĂ©ration de la rĂ©plication de 18% et une accĂ©lĂ©ration des rĂ©cupĂ©rations dans le Redis Query Engine jusqu'Ă  16 fois (grĂące Ă  la mise Ă  l'Ă©chelle horizontale et verticale). Lors de l'exĂ©cution d'un ensemble de 149 tests, 90 commandes ont Ă©tĂ© exĂ©cutĂ©es plus rapidement. La capacitĂ© de traitement a considĂ©rablement augmentĂ© grĂące Ă  la transition vers un fonctionnement multi-thread des composants pour le parsing des commandes, le traitement des requĂȘtes clients, la lecture et l'Ă©criture dans les sockets rĂ©seau. Une nouvelle implĂ©mentation du mĂ©canisme de traitement multi-thread des entrĂ©es/sorties (io-threads) a Ă©tĂ© proposĂ©e.
  • Un nouveau mĂ©canisme de rĂ©plication a Ă©tĂ© prĂ©sentĂ©, consommant 35% de mĂ©moire en moins et fonctionnant 18% plus rapidement. Pour Ă©viter les blocages, deux flux de rĂ©plication sĂ©parĂ©s ont Ă©tĂ© impliquĂ©s : un pour transmettre les modifications au nƓud principal et un autre pour transmettre les modifications aux nƓuds intermĂ©diaires.

Pour gĂ©rer les donnĂ©es dans la base de donnĂ©es Redis, des commandes telles que l'incrĂ©ment/dĂ©crĂ©ment, les opĂ©rations standard sur les listes et les ensembles (union, intersection), le renommage des clĂ©s, les sĂ©lections multiples et les fonctions de tri sont fournies. Deux modes de stockage sont supportĂ©s : la synchronisation pĂ©riodique des donnĂ©es sur disque et la tenue d'un journal des modifications sur disque. Dans le second cas, l'intĂ©gralitĂ© des modifications est garantie. Les transactions sont supportĂ©es, permettant d'exĂ©cuter en une seule Ă©tape un groupe de commandes, garantissant la cohĂ©rence et la sĂ©quentialitĂ© (les commandes d'autres requĂȘtes ne peuvent pas s'intercaler) de l'exĂ©cution d'un ensemble donnĂ© de commandes, tout en permettant d'annuler les modifications en cas de problĂšme.

Il est possible d'organiser une réplication master-slave des données sur plusieurs serveurs, réalisée en mode non-bloquant. Un mode de messagerie 'publication/abonnement' est également disponible, dans lequel un canal est créé, les messages de celui-ci étant diffusés aux clients abonnés. L'ensemble des données est complÚtement mis en cache en mémoire vive. Des bibliothÚques clientes sont disponibles pour la plupart des langages populaires, y compris Perl, Python, PHP, Java, Ruby, Tcl, JavaScript/Node.js, Go et C#.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster