Projekti Redis është kthyer në përdorimin e licencës së hapur. Këtu është paraqitur Redis 8.0

Kompania Redis Ltd shpalli ndryshimin e politikës së licencave të projektit. Duke filluar me lëshimin e Redis 8.0, kodi i projektit u bë i disponueshëm nën licencën e lirë AGPLv3. Kalimi në licencën e hapur u bë i mundur falë rikthimit në kompani të Salvatore Sanfilippo, krijuesit të DB-së Redis. Pas largimit nga Redis Ltd, Salvatore zhvilloi një përsetit vektorësh (Vector Sets), të cilin dëshiroi ta integrojë në Redis, por donte që kodi i krijuar prej tij të ofrohej nën një licencë të hapur. Salvatore arriti të bindë kolegët për nevojën e rikthimit të natyrës së hapur të projektit dhe përmirësimit të ndërveprimit me komunitetin.

Rowan Trollope, drejtori i Redis Ltd, tha se kalimi në licenca pronësore vitin e kaluar arriti qëllimin e tij, pasi kompanitë AWS dhe Google themeluan një fork, filluan të merrnin pjesë në zhvillimin e përbashkët dhe të ndanin përvojat e tyre të kaluara. Ndërkohë, ndryshimi i licencave dëmtoi marrëdhëniet me komunitetin, të cilat tani kompania do të përpiqet ti rikthejë duke u kthyer në ofrimin e kodit nën licencën e lirë.

Pas kalimit në licenca pronësore, zhvillimi i bazës së kodit të hapur të Redis vazhdoi në forkat Valkey (fork i zhvilluar me pjesëmarrjen e Amazon, Google, Oracle, Ericsson dhe Snap), Redict (fork nga autori i ndërfaqes përdoruese Sway dhe gjuhës Hare), Garnet (DB e Microsoft-it e cila është e përputhshme me Redis) dhe KeyDB (fork me performancë të lartë i Redis 5 nga Snapchat). Në repozitorët e distribucioneve Debian 13, Ubuntu 24.10, Fedora 41, RHEL 10, Azure Linux 3, Arch Linux dhe Alpine 3.20, paketa Redis u zëvendësua me fork Valkey.

Fillimisht Redis u ofrua nën një licencë të lehtësuar BSD, e cila lejonte të mos raportoheshin ndryshimet, pas së cilës kaloi në licenca pronësore RSALv2 (Licenca e Disponueshme e Burimeve të Redis v2) dhe SSPLv1 (Licenca Publike Anësore e Serverëve v1). Duke filluar nga Redis 8, kodi i projektit është i disponueshëm nën licencën AGPLv3, e cila ka kufizime për aplikacionet që ofrojnë funksionimin e shërbimeve në rrjet. Përdoruesit e komponentëve AGPL në shërbime në rrjet janë të detyruar të ofrojnë përdoruesve kodin burimor të të gjitha ndryshimeve të bëra në këto komponente, edhe nëse softueri në bazë të shërbimit nuk shpërndahet dhe përdoret vetëm në infrastrukturën e brendshme për organizimin e punës së shërbimit. Licenca AGPLv3 është e përputhshme me GPLv3, por është në konflikt me licencën GPLv2.

Licencat SSPL dhe RSAL që ishin përdorur deri tani çuan në diskriminimin e kategorive të veçanta të përdoruesve, çka nuk lejonte që ato të konsideroheshin të hapura ose të lira. Ndër qëllimet e tyre, të dyja licencat janë të ngjashme me njëra-tjetrën, ndërsa dallimet përfshijnë se licenca SSPL është e bazuar në licencën e copëzimit AGPLv3, ndërsa licenca RSAL është e bazuar në licencën e lehtësuar BSD. Licenca RSAL lejon përdorimin, modifikimin, shpërndarjen dhe integrimin e kodit në aplikacione, përveç rasteve kur këto aplikacione janë komerciale ose përdoren për ofrimin e shërbimeve të menaxhuara me pagesë. Licenca SSPL përfshin gjithashtu kërkesën për ofrimin nën të njëjtën licencë jo vetëm për kodin e aplikacionit, por edhe për tekstet burimore të të gjithë komponenteve të përfshirë në ofrimin e shërbimit në re.

Në të njëjtën kohë me shpalljen e ndryshimit të licencës u prezantua versioni Redis 8.0. Megjithatë, përkundër shpalljes së disponueshmërisë së versionit, në repozitorinë e projektit momentalisht është vetëm kandidati për versionet, dhe lidhja për shkarkimin e Redis 8.0 në faqen e projektit çon në një faqe me përshkrimin e përgjithshëm të procesit të instalimit. Në shënimin për version, gjithashtu është përmendur vetëm lëshimi 8.0-RC1.

Ndryshimet kryesore në Redis 8.0:

  • Shtuar njĂ« tip pĂ«r ruajtjen e grupeve tĂ« tĂ« dhĂ«nave vektoriale, tĂ« kĂ«rkuara nĂ« sistemet e mĂ«simit tĂ« makinerisĂ« dhe kĂ«rkimit semantik. Griset vektoriale (vector set) zgjasin funksionalitetin e mĂ«parshĂ«m tĂ« listave tĂ« renditura (sorted set) me mundĂ«sinĂ« e ruajtjes sĂ« vektorĂ«ve shumĂ«-dimĂ«sionalĂ«. PĂ«r manipulimin e tĂ« dhĂ«nave vektoriale janĂ« shtuar 11 komanda tĂ« reja, si VADD, VREM dhe VSIM.
  • Modulet Redis Query Engine, JSON, Time Series dhe Llojet e tĂ« DhĂ«nave Probabilistike janĂ« integruar nĂ« pĂ«rbĂ«rjen kryesore tĂ« Redis, qĂ« mĂ« parĂ« ishin ofruar si zgjerime tĂ« veçanta tĂ« Redis Stack.
  • E integruar mbĂ«shtetja pĂ«r strukturĂ«n e tĂ« dhĂ«nave JSON, e cila lejon ruajtjen e dokumenteve nĂ« formatin JSON tĂ« lidhura me çelĂ«sat nĂ« Redis. PĂ«r nxjerrjen selektive tĂ« dokumenteve JSON dhe aksesin nĂ« elemente tĂ« veçanta mund tĂ« pĂ«rdoret gjuha e pyetjeve JSONPath. Ekziston mbĂ«shtetje pĂ«r pĂ«rditĂ«simin atomik, qĂ« lejon tĂ« bĂ«hen ndryshime nĂ« fushat e veçanta tĂ« dokumentit JSON pa e ngarkuar tĂ« gjithĂ« dokumentin.
  • Shtuar mbĂ«shtetje pĂ«r strukturat e dhĂ«nave nĂ« formĂ«n e serive kohore (njĂ« regjistĂ«r formon kohĂ«n dhe njĂ« grup vlerash pĂ«rkatĂ«se tĂ« kĂ«tij koha, pĂ«r shembull, tĂ« marra pĂ«rmes sondazhit tĂ« rregullt tĂ« gjendjeve tĂ« sensorĂ«ve ose mbledhjes sĂ« metrikave). PĂ«r tĂ« zvogĂ«luar konsumimin e memories janĂ« pĂ«rdorur algoritme pĂ«r kompresimin e kĂ«tyre tĂ« dhĂ«nave dhe Ă«shtĂ« ofruar mundĂ«sia pĂ«r tĂ« pĂ«rcaktuar rregulla pĂ«r filtrimin e tĂ« dhĂ«nave arkivore (downsampling).
  • Shtuar struktura tĂ« dhĂ«nash probabilistike: Bloom filter, Cuckoo filter, Count-min sketch, Top-k dhe t-digest, qĂ« lejojnĂ« njĂ« reduktim tĂ« konsiderueshĂ«m tĂ« madhĂ«sisĂ« sĂ« ruajtjes kur Ă«shtĂ« e nevojshme ruajtja e volumit tĂ« madh tĂ« tĂ« dhĂ«nave nĂ« kĂ«mbim tĂ« humbjes sĂ« saktĂ«sisĂ« gjatĂ« ekzekutimit tĂ« disa operacioneve. "Bloom filter" dhe "Cuckoo filter" lejojnĂ« verifikimin e anĂ«tarĂ«sisĂ« nĂ« njĂ« shumĂ«si, duke pranuar pĂ«rcaktimin e gabuar pĂ«r elementet qĂ« mungojnĂ«, por duke pĂ«rjashtuar humbjen e elementeve ekzistues. "Count-min sketch" parashikon numrin e pĂ«rmendjeve tĂ« njĂ« vlerĂ« nĂ« shumĂ«si. "Top-k" lejon gjetjen e vlerave mĂ« tĂ« zakonshme. "T-digest" ofron mundĂ«sinĂ« pĂ«r tĂ« nxjerrĂ« vlera qĂ« janĂ« mĂ« tĂ« mĂ«dha ose mĂ« tĂ« vogla se njĂ« vlerĂ« e caktuar.
  • PĂ«rfshirĂ« motorin "Redis Query Engine" me mbĂ«shtetje pĂ«r kĂ«rkimin vektorial dhe mundĂ«sitĂ« pĂ«r tĂ« formuar mostra nĂ« bazĂ« tĂ« pĂ«rmbajtjes, dhe jo nĂ« bazĂ« tĂ« çelĂ«save. Redis Query Engine lejon krijimin e indekseve shtesĂ« pĂ«r tĂ« dhĂ«nat e ruajtura nĂ« hesh tĂ« dhĂ«nash dhe dokumente JSON.
  • Shtuar mbĂ«shtetje mĂ« e gjerĂ« pĂ«r ACL (Listat e Kontrollit tĂ« Qasjes), qĂ« lejojnĂ« menaxhimin e aksesit nĂ« tĂ« dhĂ«na tĂ« bazuara nĂ« çelĂ«sa dhe lejojnĂ« pĂ«rcaktimin e grupeve tĂ« ndryshme tĂ« rregullave tĂ« qasjes pĂ«r komandat me mundĂ«sinĂ« e lidhjes sĂ« grupeve tĂ« autorizimeve me çdo pĂ«rdorues. PĂ«r shembull, me anĂ« tĂ« ACL Ă«shtĂ« e mundur tĂ« pĂ«rcaktohen pĂ«rdoruesit qĂ« mund tĂ« lidhen me Redis, cilat çelĂ«sa ka akses pĂ«rdoruesi dhe cilat komanda mund tĂ« ekzekutojĂ«. NĂ« Redis 8 janĂ« shtuar kategori tĂ« reja tĂ« ACL pĂ«r strukturat e reja tĂ« tĂ« dhĂ«nave.
  • Shtuar komandat e reja pĂ«r punĂ«n me heshin:
    • HGETDEL — nxjerr dhe fshin fushat e heshit sipas çelĂ«sit tĂ« caktuar.
    • HGETEX — nxjerr fushat e heshit sipas çelĂ«sit tĂ« caktuar dhe pĂ«rcakton njĂ« kohĂ« tĂ« jetĂ«s pĂ«r to.
    • HSETEX — vendos fushat e heshit sipas çelĂ«sit tĂ« caktuar dhe pĂ«rcakton njĂ« kohĂ« tĂ« jetĂ«s pĂ«r to.
  • Kryer mĂ« shumĂ« se 30 optimizime nĂ« performancĂ«, qĂ« nĂ« disa teste çon nĂ« rritjen e shpejtĂ«sisĂ« ekzekutimit tĂ« komandave deri nĂ« 87%, rritjen e kapacitetit deri nĂ« 112%, pĂ«rshpejtimin e replikimit deri nĂ« 18% dhe pĂ«rshpejtimin e shpĂ«rndarjes nĂ« Redis Query Engine deri nĂ« 16 herĂ« (pĂ«rmes pĂ«rmirĂ«simit horizontal dhe vertical). GjatĂ« kalimit tĂ« njĂ« grupi prej 149 testeve, 90 komanda e kanĂ« reduktuar kohĂ«n e ekzekutimit. Kapaciteti me tĂ« vĂ«rtetĂ« Ă«shtĂ« rritur duke kaluar komponentĂ«t nĂ« punĂ«n shumĂ«fishe pĂ«r analizimin e komandave, trajtimin e kĂ«rkesave tĂ« klientĂ«ve, leximin dhe shkrimin nĂ« soket rrjeti. Propozuar njĂ« implementim tĂ« ri tĂ« mekanizmit tĂ« procesimit shumĂ«fisht tĂ« hyrjes/ daljes (io-threads).
  • Paraqitur njĂ« mekanizĂ«m tĂ« ri tĂ« replikimit, qĂ« konsumon 35% mĂ« pak memorie dhe punon 18% mĂ« shpejt. PĂ«r tĂ« eliminuar bllokimet janĂ« angazhuar dy rrjedha tĂ« veçanta tĂ« replikimit — njĂ«ra pĂ«r transmetimin e ndryshimeve nĂ« nyjĂ«n kryesore, dhe tjetra pĂ«r transmetimin e ndryshimeve nĂ« nyjat ndĂ«rmjetĂ«se.

Për menaxhimin e të dhënave në DBMS Redis, ofrohen komanda si inkrementim/dekrementim, operacione standard mbi lista dhe shumësi (bashkimin, ndërprerja), rinomimi i çelësave, mostra të shumëfishta dhe funksione renditjeje. Mbështeten dy mënyra ruajtjeje: sinkronizimi periodik i të dhënave në disk dhe mbajtja në disk e regjistrit të ndryshimeve. Në rastin e dytë, garanton ruajtjen e plotë të të gjitha ndryshimeve. Mbështeten transaksionet, që lejojnë ekzekutimin e një grupi komandash në një hap, duke garantuar koherencën dhe vazhdimësinë (komandat nga kërkesa të tjera nuk mund të ndërhyjnë) e ekzekutimit të grupit të komandave të përcaktuara, dhe në rast problemesh duket se është e mundur të kthehen ndryshimet.

E mundur organizimi i replikimit master-slave të të dhënave në disa serverëve, duke u realizuar në një mënyrë jo bllokuese. Po ashtu, i nevojshëm është që një mekanizëm i komunikimit "publikim/abonim", ku krijohet një kanal, mesazhet nga i cili shpërndahen klientëve sipas abonimeve. Të gjitha të dhënat ruhen plotësisht në memorie. Bibliotekat e klientëve janë të disponueshme për shumicën e gjuhëve të njohura, duke përfshirë Perl, Python, PHP, Java, Ruby, Tcl, JavaScript/Node.js, Go dhe C#.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster