Projektet Redis har ÄtergÄtt till att anvÀnda en öppen licens. Redis 8.0 presenterades.

Företaget Redis Ltd har meddelat en förĂ€ndring av licenspolicyn för projektet. FrĂ„n och med version 8.0 av Redis blir projektkoden tillgĂ€nglig under den fria licensen AGPLv3. ÖvergĂ„ngen till en öppen licens möjliggjordes av Salvatore Sanfilippo, skaparen av databashanteraren Redis, som Ă„tervĂ€nde till företaget. Efter sin avgĂ„ng frĂ„n Redis Ltd utvecklade Salvatore en uppsĂ€ttning vektorbaserade tillĂ€gg (Vector Sets) som han ville inkludera i Redis, men ville att den kod han skapade skulle levereras under en öppen licens. Salvatore lyckades övertyga sina kollegor om fördelarna med att Ă„terstĂ€lla projektets öppna natur och förbĂ€ttra samarbetet med gemenskapen.

Rowan Trollope, direktör för Redis Ltd, sade att övergÄngen till proprietÀra licenser som gjordes förra Äret har nÄtt sitt syfte, dÄ företagen AWS och Google har grundat en fork, börjat delta i det gemensamma arbetet och dela med sig av sina tidigare prestationer. Samtidigt skadade licensbytet relationerna med gemenskapen, vilket företaget nu kommer att försöka ÄterstÀlla genom att ÄtergÄ till att leverera koden under en fri licens.

Efter övergÄngen till proprietÀra licenser fortsatte utvecklingen av den öppna kodbasen för Redis i forks som Valkey (en fork utvecklad med deltagande frÄn Amazon, Google, Oracle, Ericsson och Snap), Redict (en fork skapad av författaren till anvÀndargrÀnssnittet Sway och sprÄket Hare), Garnet (en databashanterare frÄn Microsoft som Àr kompatibel med Redis) och KeyDB (ett högpresterande fork av Redis 5 frÄn Snapchat). I distributionsrepositorierna för Debian 13, Ubuntu 24.10, Fedora 41, RHEL 10, Azure Linux 3, Arch Linux och Alpine 3.20 har paketet Redis ersatts med fork Valkey.

Ursprungligen slÀpptes Redis under en tillstÄndslicens BSD, som tillÀt att man inte behövde öppna sina Àndringar, dÀrefter övergick man till proprietÀra licenser RSALv2 (Redis Source Available License v2) och SSPLv1 (Server Side Public License v1). FrÄn och med Redis 8 Àr projektkoden tillgÀnglig under AGPLv3-licensen, vars sÀrdrag Àr att den har begrÀnsningar för applikationer som tillhandahÄller nÀtverkstjÀnster. Vid anvÀndning av AGPL-komponenter i nÀtverkstjÀnster Àr utvecklaren skyldig att tillhandahÄlla anvÀndaren kÀllkoden för alla Àndringar som gjorts i dessa komponenter, Àven om den programvara som ligger till grund för tjÀnsten inte sprids och anvÀnds uteslutande i den interna infrastrukturen för drift av tjÀnsten. AGPLv3-licensen Àr kompatibel med GPLv3, men stÄr i konflikt med GPLv2-licensen.

De licenser som tidigare anvÀndes, SSPL och RSAL, ledde till diskriminering av vissa anvÀndarkategorier, vilket gjorde att de inte kunde betraktas som öppna eller fria. BÄda licenserna Àr likvÀrdiga i sina syften, och skillnaderna ligger i att SSPL-licensen Àr baserad pÄ copyleft-licensen AGPLv3, medan RSAL-licensen bygger pÄ den permissiva BSD-licensen. RSAL-licensen tillÄter anvÀndning, modifiering, distribution och integrering av koden i applikationer, utom i fall dÀr dessa applikationer Àr kommersiella eller anvÀnds för att tillhandahÄlla hanterade betaltjÀnster. SSPL-licensen innehÄller dessutom ett krav pÄ att leverera, under samma licens, inte bara koden för sjÀlva applikationen, utan Àven kÀllkoden för alla komponenter som Àr involverade i tillhandahÄllandet av molntjÀnsten.

Samtidigt som meddelandet om licensbytespresentationen presenterades releasen Redis 8.0. Trots meddelandet om tillgÀngligheten av releasen finns det dock för nÀrvarande endast en kandidat för releaser i repositoryt, och lÀnken för att ladda ner Redis 8.0 pÄ projektets webbplats leder till en sida med allmÀn information om installationsprocessen. I releasenotisen har endast version 8.0-RC1 markerats hittills.

Huvudsakliga förÀndringar i Redis 8.0:

  • En ny datatyp för lagring av vektoruppsĂ€ttningar som efterfrĂ„gas i maskininlĂ€rningssystem och semantisk sökning har lagts till. VektoruppsĂ€ttningar (vector set) utökar den tidigare tillgĂ€ngliga funktionen av sorterade uppsĂ€ttningar (sorted set) med möjlighet att lagra flerdimensionella vektorer. För att manipulera vektordata har 11 nya kommandon lagts till, sĂ„som VADD, VREM och VSIM.
  • Modulerna Redis Query Engine, JSON, Time Series och Probabilistic Data Types har flyttats till kĂ€rnan av Redis, tidigare tillhandahĂ„llna som fristĂ„ende tillĂ€gg i Redis Stack.
  • Stödet för datatypen JSON har integrerats, vilket möjliggör lagring av JSON-dokument kopplade till nycklar i Redis. För selektiv extraktion av JSON-dokument och Ă„tkomst till individuella element kan frĂ„gesprĂ„ket JSONPath anvĂ€ndas. Stöd för atomiska uppdateringar finns ocksĂ„, vilket tillĂ„ter Ă€ndringar av enskilda fĂ€lt i JSON-dokumentet utan att ladda hela dokumentet.
  • Stödet för datatyper i form av tidsserier har lagts till (en post bildar en tid och ett antal motsvarande vĂ€rden, exempelvis erhĂ„llna genom periodisk avlĂ€sning av sensorers tillstĂ„nd eller insamling av mĂ€tdata). För att minska minnesförbrukningen har algoritmer för komprimering av liknande data anvĂ€nts och möjligheten att definiera regler för nedskĂ€rning av arkiverade data (downsampling) har lagts till.
  • Sannolikhetsbaserade datatyper har lagts till: Bloom-filter, Cuckoo-filter, Count-min-sketch, Top-k och t-digest, vilket möjliggör avsevĂ€rt minskad lagringsstorlek nĂ€r mycket stora datamĂ€ngder lagras genom att acceptera en viss grad av felaktighet vid vissa operationer. Bloom-filter och Cuckoo-filter gör det möjligt att kontrollera medlemskap i en mĂ€ngd, vilket medger falska positiva men utesluter att ett existerande element missas. Count-min-sketch förutsĂ€ger antalet förekomster av ett vĂ€rde i en mĂ€ngd. Top-k möjliggör att hitta de mest frekvent förekommande vĂ€rdena. T-digest ger möjlighet att ta urval av vĂ€rden som Ă€r större eller mindre Ă€n ett angivet vĂ€rde.
  • Redis Query Engine har inkluderats med stöd för vektorbaserad sökning och möjligheter att skapa urval baserat pĂ„ innehĂ„ll snarare Ă€n pĂ„ nycklar. Redis Query Engine gör det möjligt att skapa ytterligare index för data som lagras i hash-ar och JSON-dokument.
  • Utvidet stĂžtte for ACL (Access Control Lists) som gjĂžr det mulig Ă„ administrere datatilgang basert pĂ„ nĂžkler, og som tillater definisjon av forskjellige tilgangsregler for kommandoer med mulighet for Ă„ knytte sett med fullmakter til hver bruker. For eksempel, ved hjelp av ACL kan man bestemme hvilke brukere som kan koble seg til Redis, hvilke nĂžkler en bruker har tilgang til, og hvilke kommandoer de kan utfĂžre. I Redis 8 er det lagt til nye kategorier av ACL for nye datatyper.
  • Nye kommandoer for arbeid med hasher er lagt til:
    • HGETDEL — hent og slett feltene i hashen for den angitte nĂžkkelen.
    • HGETEX — hent feltene i hashen for den angitte nĂžkkelen og spesifiser levetiden for dem.
    • HSETEX — sett feltene i hashen for den angitte nĂžkkelen og spesifiser levetiden for dem.
  • Over 30 ytelsesoptimaliseringer er implementert, noe som i noen tester fĂžrer til en hastighetsĂžkning pĂ„ 87 %, Ăžkt gjennomstrĂžmning pĂ„ 112 %, 18 % raskere replikasjon og opp til 16 ganger raskere spĂžrring i Redis Query Engine (takket vĂŠre horisontal og vertikal skalering). Ved gjennomfĂžring av et sett med 149 tester ble 90 kommandoer raskere. GjennomstrĂžmningen har Ăžkt betydelig, takket vĂŠre overgangen til flertrĂ„det arbeid for komponentene for kommandoanalyse, kundespĂžrsmĂ„l, samt inn- og utlesing fra nettverks-sokler. En ny implementering av flertrĂ„det I/O-behandling (io-threads) er foreslĂ„tt.
  • En ny replikasjonsmekanisme er introdusert, som bruker 35 % mindre minne og er 18 % raskere. For Ă„ unngĂ„ lĂ„sing er det benyttet to separate replikasjonstrĂ„der — Ă©n for Ă„ overfĂžre endringer til hovednoden, og en annen for Ă„ overfĂžre endringer til mellomnoder.

För att hantera data i databasen Redis erbjuds kommandon sÄsom inkrementering/dekrementering, standardoperationer för listor och mÀngder (förening, snitt), omdöpning av nycklar, flera urval och sorteringsfunktioner. TvÄ lagringslÀgen stöds: periodisk synkronisering av data pÄ disk och loggning av förÀndringar pÄ disk. I det andra fallet garanteras fullstÀndig bevarande av alla förÀndringar. Transaktioner stöds, vilket gör att grupper av kommandon kan utföras i ett steg, vilket garanterar konsistens och sekventiell utförande av det angivna kommandoset, utan möjlighet för kommandon frÄn andra förfrÄgningar att blanda sig, och i fall av problem kan förÀndringar rullas tillbaka.

Det Àr möjligt att organisera master-slave-replikering av data till flera servrar, som genomförs i icke-blockerande lÀge. Det finns Àven ett meddelandesystem för "publicering/prenumeration", dÀr en kanal skapas som sprider meddelanden till prenumererande kunder. All data cachas helt i RAM-minnet. Klientbibliotek finns tillgÀngliga för de flesta populÀra sprÄk, inklusive Perl, Python, PHP, Java, Ruby, Tcl, JavaScript/Node.js, Go och C#.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster