Redis projekt on naasnud avatud litsentsi kasutamise juurde. Esitatud on Redis 8.0

Redis Ltd teatas projekti litsentsipoliitika muutumisest. Alates Redis 8.0 versiooni vĂ€ljaandmisest on projekti kood saadaval vabakutselisena AGPLv3 litsentsi all. Üleminek avatud litsentsile sai vĂ”imalikuks tĂ€nu Salvatore Sanfilippo naasmisele ettevĂ”ttesse, kes on Redis andmebaasi looja. PĂ€rast lahkumist Redis Ltd-st töötas Salvatore vĂ€lja vektorlisandeid (Vector Sets), mille ta soovis integreerida Redis'i, kuid soovis, et tema loodud kood oleks avatud litsentsi all. Salvatore suutis veenda kaastöötajaid projekti avatud olemuse taastamise vajaduses ja koostöö parandamises kogukonnaga.

Rowan Trollope, Redis Ltd direktor, teatas, et eelmisel aastal toimunud ĂŒleminek kaubanduslikele litsentsidele saavutas oma eesmĂ€rgid, kuna AWS ja Google asutasid fork'i, hakkasid osalema ĂŒhises arenduses ja jagama oma varasemaid saavutusi. Samas kahjustas litsentside muutmine suhteid kogukonnaga, mida ettevĂ”te nĂŒĂŒd pĂŒĂŒab taastada, naastes koodi pakkumise juurde vabakutselise litsentsi all.

PĂ€rast ĂŒleminekut eralicenseeritud litsentsidele jĂ€tkus avatud koodibaasi Redis arendamine forkides Valkey (fork, mida arendavad koos Amazon, Google, Oracle, Ericsson ja Snap), Redict (fork, mille on loonud Sway kasutajaliidese autor ja keele Hare), Garnet (Microsofti andmebaas, mis on ĂŒhilduv Redisiga) vĂ”i KeyDB (Snapchat'i kĂ”rge jĂ”udlusega fork Redis 5-st). Debian 13, Ubuntu 24.10, Fedora 41, RHEL 10, Azure Linux 3, Arch Linux ja Alpine 3.20 distributsioonide hoidlates on Redis pakett asendatud forkiga Valkey.

Esialgu anti Redis vĂ€lja BSD-litsentsi alusel, mis lubas muudatusi mitte avalikustada, kuid hiljem ĂŒleminekut tehti RSALv2 (Redis Source Available License v2) ja SSPLv1 (Server Side Public License v1) litsentsidele. Alates Redis 8-st on projekti kood saadaval AGPLv3 litsentsi alusel, mille eripĂ€ra on piirangud rakendustele, mis toetavad vĂ”rguteenuste toimimist. AGPL-komponentide kasutamisel vĂ”rguteenustes on arendaja kohustatud kasutajale esitama kĂ”ik nendele komponentidele tehtud muudatuste lĂ€htekoodi, isegi kui teenuse aluseks olev tarkvara ei ole jaotatud ning kasutatakse ainult sise-infrastruktuuris teenuse toimimise korraldamiseks. AGPLv3 litsents on kooskĂ”las GPLv3-ga, kuid on vastuolus GPLv2 litsentsiga.

Varemisi litsentsid SSPL ja RSAL on seni pÔhjustanud teatud kasutajate kategooriate diskrimineerimist, mistÔttu ei saa neid pidada avatud vÔi vabaks. Nende eesmÀrgid on sarnased, kuid erinevused seisnevad selles, et litsents SSPL pÔhineb AGPLv3 kopilife litsentsil, samas kui litsents RSAL pÔhineb BSD-pÔhilisel lubava litsentsil. Litsents RSAL vÔimaldab koodi kasutada, muuta, levitada ja integreerida rakendustesse, vÀlja arvatud juhul, kui need rakendused on kommertsed vÔi neid kasutatakse halduskulude eest makstava teenuse pakkumiseks. Litsents SSPL sisaldab lisaks nÔuet, et allikakood ei pea olema saadaval mitte ainult rakenduse enda suhtes, vaid ka kÔikide komponentide allikakood, mis on seotud pilveteenuse pakkumisega.

Koos arvesse vĂ”ttes uue litsentsi teadaandmist, avaldati Redis 8.0 versioon. Siiski, hoolimata versiooni kĂ€ttesaadavuse kuulutamisest, sisaldab hoidla praegu vaid versioonikandidaati ning link Redis 8.0 allalaadimiseks projektilehelt suunab installatsiooniprotsessi ĂŒldisele kirjeldusele. Versiooni mĂ€rkuses on samuti hetkel mĂ€rgitud vaid 8.0-RC1 vĂ€ljalaskmine.

Redis 8.0 pÔhimuudatused:

  • Lisatud uus andmetĂŒĂŒp vektorkogude salvestamiseks, mis on nĂ”utud masinĂ”ppe ja semantilise otsingu sĂŒsteemides. Vektorkogud (vector set) laiendavad varasemaid jĂ€rjekorranimekirju (sorted set) vĂ”imalusega salvestada mitmemÔÔtmelisi vektoreid. Vektoriandmetega töötamiseks on lisatud 11 uut kĂ€sku, nagu VADD, VREM ja VSIM.
  • Redis'i pĂ”hikoondisesse on viidud Redis Query Engine, JSON, Time Series ja Probabilistic Data Types moodulid, mis varem olid eraldi Redis Stack laiendustena saadaval.
  • Integreeritud on JSON-andmestruktuuri tugi, mis vĂ”imaldab salvestada dokumente JSON-vormingus vĂ”tmete pĂ”hjal Redis'is. JSON-dokumentide valikuline vĂ€ljavĂ”tt ja ĂŒksikute elementide juurde pÀÀsemine toimub JSONPath pĂ€ringukeelt kasutades. Toetatakse aatomaarset uuendamist, mis vĂ”imaldab teha muudatusi ĂŒksikutes JSON-dokumendi vĂ€ljade, ilma et oleks vaja kogu dokumenti laadida.
  • Lisatud on ajaseeria andmestruktuuride tugi (salvestis koosneb ajast ja vastavatest vÀÀrtustest, nĂ€iteks, mis on saadud perioodiliselt sensorite oleku pĂ€rimise vĂ”i mÔÔtmete kogumise kĂ€igus). MĂ€lu tarbimise vĂ€hendamiseks on kasutusele vĂ”etud selliste andmete kompressimise algoritmid ning vĂ”imaldatakse arhiivitud andmete (downsampling) kĂ€rpimise reeglite mÀÀramine.
  • Lisatud on tĂ”enĂ€osusstruktuurid: Bloom filter, Cuckoo filter, Count-min sketch, Top-k ja t-digest, mis vĂ”imaldavad oluliselt vĂ€hendada salvestusruumi vajadust vĂ€ga suurte andmemahtude hoidmisel, kaotades mĂ”ningate operatsioonide tĂ€psuses. „Bloom filter“ ja „Cuckoo filter“ vĂ”imaldavad kontrollida, kas element kuulub hulka, lubades vale positiivset tulemust puuduvate elementide osas, kuid vĂ€listades olemasoleva elemendi kĂ”rvale jĂ€tmise. „Count-min sketch“ prognoosib vÀÀrtuse mainimise arvu hulgas. „Top-k“ vĂ”imaldab leida kĂ”ige sagedamini esinevaid vÀÀrtusi. „T-digest“ annab vĂ”imaluse teha valikute osas, mis on suuremad vĂ”i vĂ€iksemad kui mÀÀratud.
  • Komplekti kuulub „Redis Query Engine“ mootor, mis toetab vektorsotsingut ja vĂ”imaldab koostada valikuid sisu alusel, mitte vĂ”tmete pĂ”hjal. Redis Query Engine vĂ”imaldab luua tĂ€iendavaid indekseid andmete jaoks, mis on talletatud hashides ja JSON-dokumentides.
  • ACL (Access Control Lists) toe toetab laiemat toetust, vĂ”imaldades hallata juurdepÀÀsu andmetele vĂ”tmete alusel ning mÀÀrata erinevaid juurdepÀÀsureeglite kogumeid, sidudes volituste kogumid iga kasutajaga. NĂ€iteks ACL-i abil saab mÀÀrata, millised kasutajad saavad Redis'ega ĂŒhendust vĂ”tta, millistele vĂ”tmetele on kasutajal juurdepÀÀs ja milliseid kĂ€ske ta saab tĂ€ita. Redis 8-s on lisatud uusi ACL kategooriaid uutele andmestructuuridele.
  • Uued kĂ€sud hulkadega töötamiseks:
    • HGETDEL — tagastab ja kustutab hulkade vĂ€ljad antud vĂ”tme puhul.
    • HGETEX — tagastab hulga vĂ€ljad antud vĂ”tme puhul ja mÀÀrab neile eluea.
    • HSETEX — seab hulga vĂ€ljad antud vĂ”tme puhul ja mÀÀrab neile eluea.
  • Tehti ĂŒle 30 jĂ”udluse optimeerimist, mis tĂ”id mĂ”nedel testidel kaasa kĂ€skude tĂ€itmise kiirus suurenemise 87%, lĂ€bilaskevĂ”ime kasvu 112%, replikatsiooni kiirus suurenemise 18% ja Redis Query Engine'i andmete valimise kiirus kuni 16 korda (horisontaalse ja vertikaalse skaleerimise tĂ”ttu). 149 testi kĂ€igus said 90 kĂ€sku tĂ€idetud kiiremini. LĂ€bilaskevĂ”ime on oluliselt suurenenud, tĂ€nu komponentide ĂŒleminekule mitme lĂ”ime tööle, mis tegelevad kĂ€skude dekodeerimise, kliendipĂ€ringute töötlemise, vĂ”rgu sokettidesse lugemise ja kirjutamisega. Pakuti vĂ€lja uus mitme lĂ”ime sisendi/vĂ€ljundi töötlemise (io-threads) mehhanismi teostus.
  • Esitleti uut replikatsioonimehhanismi, mis tarbib 35% vĂ€hem mĂ€lu ja töötab 18% kiiremini. Blokeeringute vĂ€ltimiseks kasutavad kaks eraldi replikatsiooni lĂ”ime — ĂŒks muutuste edastamiseks peamasinasse, teine muutuste edastamiseks vahemasinatesse.

Andmete haldamiseks Redis DBMS-is on saadaval sellised kĂ€sud nagu inkrementeerimine/dekrementeerimine, tavalised toimingud loendite ja kogumitega (ĂŒhendamine, ristumine), vĂ”tmete ĂŒmbernimetamine, mitmekordne valimine ja sorteerimisfunktsioonid. Toetatakse kahte salvestusreĆŸiimi: andmete perioodilised sĂŒnkroonimised kettale ja muudatuste logimise pidamine kettal. Teisel juhul tagatakse kĂ”igi muudatuste tĂ€ielik sĂ€ilitamine. Toetatakse tehinguid, mis vĂ”imaldavad korraga teostada grupi kĂ€ske, tagades antud kĂ€suviiside tĂ€ideviimisel jĂ€rjekindluse ja jĂ€rjekorra (teised pĂ€ringud ei saa sekkuda) ning vĂ”imaldades probleemide korral muudatuste tagasipööramist.

On vĂ”imalik korraldada master-slave andmete replikatsiooni mitmele serverite, teostatuna mitteblokeerivas reĆŸiimis. Saadaval on ka sĂ”numite vahetamise „vĂ€ljaandmis/abonendi” reĆŸiim, mille kĂ€igus luuakse kanal, mille sĂ”numid edastatakse tellijatele. KĂ”ik andmed salvestatakse tĂ€ielikult RAM-i. Klientide teegid on saadaval enamikus populaarsetes keeltes, sealhulgas Perl, Python, PHP, Java, Ruby, Tcl, JavaScript/Node.js, Go ja C#.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster