Redis 8.2 er blevet frigivet, en database med NoSQL-systemer. Redis tilbyder funktioner til at gemme data i nøgle/værdi-format, udvidet med understøttelse af strukturerede dataformater som lister, hashes og sæt, samt muligheden for at udføre server-side scripts i Lua. Projektets kode er skrevet i C og distribueres under AGPLv3-licensen.
Redis-databasen understøtter transaktioner, der gør det muligt at udføre en gruppe kommandoer i ét trin og garanterer konsistens og sekvensering (andre forespørgsler kan ikke blande sig) i udførelsen af det angivne kommando-sæt, og i tilfælde af problemer tillades det at rulle ændringer tilbage. Alle data caches i fuldt omfang i RAM. Klientbiblioteker er tilgængelige for de mest populære sprog, herunder Perl, Python, PHP, Java, Ruby og Tcl.
Til datahåndtering gives der kommandoer som inkrement/dekrement, standardoperationer på lister og sæt (forening, intersection), omdøbning af nøgler, multipel sampling og sorterede funktioner. To lagringsmetoder understøttes: periodisk synkronisering af data på disk og føring af en ændringslog på disken. I det andet tilfælde sikres det, at alle ændringer bliver bevaret fuldt ud. Det er muligt at organisere master-slave datarapportering til flere servere, der sker i en ikke-blokerende tilstand. En publicerings-abonnements-mulighed er også tilgængelig, hvor en kanal oprettes, og beskeder fra denne kanal distribueres til abonnenter.
Nøgleændringer i Redis 8.2:
- Over 70 kommandoer er blevet optimeret, hvilket har gjort dem hurtigere end i Redis 8.0. For eksempel er BITCOUNT-kommandoen blevet 35% hurtigere, mens kommandoerne til listeoperationer LINSERT, LREM og LPOS er blevet 25% hurtigere. 17 af de optimerede kommandoer er blevet hurtigere med mindst 5%, og 52 med mindst 2%.

- Optimeringer er blevet foretaget i koden til håndtering af samtidige operationer og multitrådet input/output, hvilket har resulteret i en stigning på 49% i antallet af behandlede operationer pr. sekund i tests med 8 input/output-tråde ved en belastningsfordeling på 20% skriveanmodninger og 80% læseanmodninger. serveren Der er opnået over én million behandlede operationer pr. sekund.

- Metoden til lagring af data i nøgle/værdi-format er fundamentalt ændret — der anvendes nu en ensartet struktur kvobj til at pakke nøgle-navnet, kort værdi og levetid i en enkelt hukommelsesblok og at nøjes med en reference til denne struktur i hash-tabellerne i stedet for separate referencer til nøgler, data og TTL. Ved lagring af korte strenge har den nye lagringsmetode reduceret hukommelsesforbruget med 25-37%.

- Lagring af data i JSON-format er blevet optimeret, hvilket har reduceret hukommelsesforbruget med 25-67% ved lagring af heltal og flydende tal.
- I mekanismen Streams, der anvendes til behandling og opbevaring af beskedstrømme, er der tilføjet nye kommandoer XACKDEL og XDELEX, som forenkler arbejdet med strømme, der er tilsluttet flere modtagere (forbrugergrupper). Disse kommandoer løser problemet med at slette en besked kun efter, at dens modtagelse er bekræftet af alle håndterere.
- Til kommandoen BITOP, der er beregnet til at udføre bitoperationer, er der tilføjet nye logiske operatorer DIFF, DIFF1, ANDOR og ONE.
- Der er tilføjet en ny type indekser ved navn SVS-VAMANA, som understøtter komprimering af vektorer.
- Nye målinger er tilføjet: belastning fordelt på enkelte slots og fordeling af nøglelængder for grundlæggende datatyper.
Kilde: opennet.ru



