Gipahibalo sa Redis Ltd. ang usa ka pagbag-o sa palisiya sa paglilisensya sa proyekto. Sugod sa pagpagawas sa Redis 8.0, ang code sa proyekto nahimong magamit ubos sa open source nga lisensya sa AGPLv3. Ang pagbalhin ngadto sa usa ka open license nahimo pinaagi sa pagbalik ni Salvatore Sanfilippo, ang tiglalang sa Redis database management system, ngadto sa kompanya. Human mibiya sa Redis Ltd., si Sanfilippo nakaugmad og usa ka hugpong sa mga vector extension (Vector Sets) nga andam niyang itampo sa Redis, apan gusto niya nga ang code nga iyang gihimo ipagawas ubos sa usa ka open license. Nakombinsir ni Sanfilippo ang iyang mga kauban sa mga benepisyo sa pagpahiuli sa open nature sa proyekto ug pagpalambo sa pakiglambigit sa komunidad.
Si Rowan Trollope, CEO sa Redis Ltd, miingon nga ang pagbalhin ngadto sa proprietary licenses sa miaging tuig nakab-ot ang tumong niini, tungod kay ang AWS ug Google nag-fork sa code, nagsugod sa pag-develop niini, ug nagsugod sa pagpaambit sa ilang nangaging trabaho. Bisan pa, ang pagbag-o sa lisensya nakadaot sa relasyon sa kompanya sa komunidad, nga karon sulayan sa kompanya nga ayohon pinaagi sa pagbalik sa open-source code.
Human sa pagbalhin ngadto sa proprietary licenses, ang pagpalambo sa open source Redis codebase nagpadayon sa mga forks sa Valkey (usa ka fork nga gihimo uban sa partisipasyon sa Amazon, Google, Oracle, Ericsson, ug Snap), Redict (usa ka fork gikan sa tagsulat sa Sway user interface ug sa Hare language), Garnet (usa ka Redis-compatible DBMS gikan sa Microsoft), ug KeyDB (usa ka high-performance fork sa Redis 5 gikan sa Snapchat). Debian 13, Ubuntu 24.10, Fedora 41, RHEL 10, Azure Linux Abril 3, Arko Linux ug ang Alpine 3.20 nga Redis package gipulihan sa usa ka fork sa Valkey.
Ang Redis unang gipagawas ubos sa usa ka permissive BSD license, nga nagtugot sa mga developers nga ipadayon ang ilang mga pagbag-o nga pribado. Pagkahuman niini, kini gibalhin ngadto sa proprietary Redis Source Available License v2 (RSALv2) ug Server Side Public License v1 (SSPLv1). Sugod sa Redis 8, ang code sa proyekto anaa ubos sa AGPLv3 license, nga naglakip sa mga restriksyon sa mga aplikasyon nga naghatag og mga serbisyo sa network. Kung mogamit og mga component nga adunay lisensya sa AGPL sa mga serbisyo sa network, ang developer kinahanglan nga mohatag sa user sa source code para sa tanang mga pagbag-o nga gihimo niini nga mga component, bisan kung ang nagpahiping software wala giapod-apod ug gigamit lamang sulod sa internal nga imprastraktura sa serbisyo. Ang lisensya sa AGPLv3 compatible sa GPLv3, apan nagkasumpaki sa lisensya sa GPLv2.
Ang kaniadto gigamit nga mga lisensya sa SSPL ug RSAL nagpihig batok sa pipila ka mga kategorya sa mga tiggamit, nga nagpugong kanila nga isipon nga bukas o libre. Ang duha ka lisensya parehas sa ilang mga tumong, apan ang mga kalainan anaa sa kamatuoran nga ang SSPL gibase sa copyleft nga lisensya sa AGPLv3, samtang ang RSAL gibase sa permissive nga lisensya sa BSD. Ang lisensya sa RSAL nagtugot sa paggamit, pag-usab, pag-apod-apod, ug pag-integrate sa code ngadto sa mga aplikasyon, gawas sa mga kaso diin kini nga mga aplikasyon komersyal o gigamit sa paghatag og gidumala nga bayad nga mga serbisyo. Ang lisensya sa SSPL dugang nga nagkinahanglan nga dili lamang ang code sa aplikasyon mismo, apan lakip usab ang source code alang sa tanan nga mga sangkap nga nalambigit sa paghatag sa serbisyo sa cloud, kinahanglan nga lisensyado ubos sa parehas nga lisensya.
Uban sa pahibalo sa pagbag-o sa lisensya, gipagawas usab ang Redis 8.0. Bisan pa sa pagkaanaa sa pagpagawas, ang kandidato sa pagpagawas lamang ang anaa sa repository, ug ang link sa pag-download sa Redis 8.0 sa website sa proyekto modala ngadto sa usa ka panid nga adunay kinatibuk-ang paghulagway sa proseso sa pag-instalar. Ang mga nota sa pagpagawas karon naglista lamang sa 8.0-RC1.
Mga importanteng pagbag-o sa Redis 8.0:
- Usa ka tipo ang gidugang para sa pagtipig sa mga vector data sets, nga gikinahanglan sa machine learning ug semantic search systems. Ang mga vector sets nagpalapad sa gamit sa mga sorted sets nga adunay abilidad sa pagtipig sa mga multidimensional vectors. Onse ka bag-ong mga sugo ang gidugang para sa pagmaniobra sa vector data, lakip ang VADD, VREM, ug VSIM.
- Ang mga module sa Redis Query Engine, JSON, Time Series, ug Probabilistic Data Types, nga kaniadto gihatag isip managlahing mga extension sa Redis Stack, gibalhin na ngadto sa kinauyokan nga pakete sa Redis.
- Nahiusa na ang suporta para sa istruktura sa datos sa JSON, nga nagtugot kanimo sa pagtipig sa mga dokumento sa format nga JSON, nga gigapos sa mga yawe sa Redis. Ang pinulongan sa pangutana sa JSONPath magamit alang sa mapilion nga pagkuha sa mga dokumento sa JSON ug pag-access sa indibidwal nga mga elemento. Anaa ang suporta sa pag-update sa atomic, nga nagtugot kanimo sa paghimo og mga pagbag-o sa indibidwal nga mga natad sa usa ka dokumento sa JSON nga dili kinahanglan nga i-download ang tibuuk nga dokumento.
- Gidugang ang suporta para sa mga istruktura sa datos sa serye sa oras (ang rekord nagrepresentar sa usa ka oras ug usa ka hugpong sa mga kantidad nga katumbas sa maong oras, pananglitan, nga nakuha pinaagi sa periodic sensor status polling o metric collection). Aron makunhuran ang konsumo sa memorya, gigamit ang mga algorithm sa kompresyon para sa maong datos, ug ang abilidad sa pagtino sa mga lagda sa downsampling para sa naka-archive nga datos anaa na karon.
- Gidugang ang mga probabilistic data structure: Bloom filter, Cuckoo filter, Count-min sketch, Top-k, ug t-digest. Kini nga mga istruktura makapakunhod pag-ayo sa gidak-on sa pagtipig kung magtipig og daghang datos, sa gasto sa katukma kung maghimo sa pipila ka mga operasyon. Ang Bloom filter ug Cuckoo filter nagsusi kung nalakip ba sa usa ka set, nga nagtugot sa mga sayop nga positibo alang sa nawala nga mga elemento apan wala gilakip ang nawala nga mga elemento. Ang count-min sketch nagtagna sa gidaghanon sa mga pagpakita sa usa ka kantidad sa usa ka set. Ang Top-k nangita sa labing kanunay nga makita nga mga kantidad. Ang T-digest nagtugot sa pag-sample sa mga kantidad nga mas dako o mas gamay kaysa sa usa ka piho nga kantidad.
- Apil ang Redis Query Engine, nga nagsuporta sa vector search ug ang abilidad sa pagmugna og mga pangutana base sa sulod imbes sa mga yawe. Ang Redis Query Engine nagtugot kanimo sa paghimo og dugang nga mga indeks para sa datos nga gitipigan sa mga hash ug mga dokumento sa JSON.
- Ang gipalapdan nga suporta para sa mga ACL (Access Control Lists) nagtugot sa pagkontrol sa pag-access sa datos nga gibase sa yawe ug ang kahulugan sa lain-laing mga hugpong sa mga lagda sa pag-access sa sugo nga adunay abilidad sa pag-assign sa mga hugpong sa permiso sa matag tiggamit. Pananglitan, gamit ang mga ACL, mahimo nimong mahibal-an kung kinsa nga mga tiggamit ang makakonekta sa Redis, unsang mga yawe ang ma-access sa usa ka tiggamit, ug unsang mga sugo ang ilang mahimo. Ang Redis 8 nagdugang og bag-ong mga kategorya sa ACL para sa bag-ong mga istruktura sa datos.
- Gidugang ang bag-ong mga sugo para sa pagtrabaho gamit ang mga hash:
- HGETDEL β i-print ug i-delete ang mga hash field para sa gitakdang key.
- HGETEX β ibalik ang mga hash field para sa gitakdang key ug itakda ang ilang lifetime.
- HSETEX β magtakda og mga hash field para sa gitakdang key ug ipiho ang ilang oras sa pag-expire.
- Kapin sa 30 ka performance optimizations ang napatuman, nga miresulta sa hangtod sa 87% nga mas paspas nga pagpatuman sa command sa pipila ka mga pagsulay, usa ka 112% nga pagtaas sa throughput, usa ka 18% nga pagtaas sa replication speed, ug hangtod sa 16x nga mas paspas nga retrieval sa Redis Query Engine (tungod sa horizontal ug vertical scaling). Sa usa ka set sa 149 ka mga pagsulay, 90 ka mga command ang napatuman na nga mas paspas. Ang throughput misaka pag-ayo tungod sa multithreading sa mga component para sa command parsing, client request processing, ug pagbasa ug pagsulat sa mga network socket. Usa ka bag-ong implementasyon sa multithreaded I/O processing mechanism (io-threads) ang gisugyot.
- Usa ka bag-ong mekanismo sa replikasyon ang gipaila, nga nakakunhod sa konsumo sa memorya og 35% ug nakapauswag sa performance og 18%. Aron mawagtang ang mga kandado, duha ka managlahing hilo sa replikasyon ang gigamitβusa para sa pagpadala sa mga pagbag-o ngadto sa pangunang node, ug ang lain para sa pagpadala sa mga pagbag-o ngadto sa mga intermediate node.
Para sa pagdumala sa datos, ang Redis DBMS naghatag og mga sugo sama sa increment/decrement, standard list ug set operations (union, intersection), key renaming, multiple selections, ug sorting functions. Duha ka storage modes ang gisuportahan: periodic data synchronization ngadto sa disk ug pagmintinar sa change log sa disk. Ang ulahi naggarantiya sa kompletong pagpreserbar sa tanang mga pagbag-o. Gisuportahan ang mga transaksyon, nga nagtugot sa usa ka grupo sa mga sugo nga ipatuman sa usa ka lakang, nga naggarantiya sa consistency ug sequential execution (ang mga sugo gikan sa ubang mga request dili makabalda) sa usa ka gihatag nga set sa mga sugo, ug nagtugot sa mga pagbag-o nga i-rollback kung adunay problema.
Posible nga maorganisar ang master-slave data replication sa pipila ka paagi. mga server, gihimo sa non-blocking mode. Anaa usab ang publish/subscribe messaging mode, nga nagmugna og channel diin ang mga mensahe giapod-apod ngadto sa mga kliyente pinaagi sa subscription. Ang tanang datos hingpit nga gi-cache sa RAM. Ang mga client library anaa alang sa kadaghanan sa mga sikat nga pinulongan, lakip ang Perl, Python, PHP, Java, Ruby, Tcl, JavaScript/Node.js, Go, ug C#.
Source: opennet.ru
