UtgÄvan av databashanterare Redis 8.2 har publicerats, som tillhör klassen NoSQL-system. Redis erbjuder funktioner för lagring av data i nyckel/vÀrde-format, utökat med stöd för strukturerade dataformat, sÄsom listor, hash och mÀngder, samt möjligheten att köra skriptbehandlare pÄ serversidan med Lua. Projektkoden Àr skriven i C och distribueras under AGPLv3-licens.
Databashanteraren Redis stöder transaktioner som gör det möjligt att utföra en grupp kommandon i ett enda steg, vilket garanterar konsistens och sekvens (kommandon frÄn andra förfrÄgningar kan inte avbryta) nÀr ett givet uppsÀttning kommandon exekveras, och möjligheten att rulla tillbaka Àndringar vid problem. All data cachas helt i RAM. Klientbibliotek finns tillgÀngliga för de flesta populÀra sprÄken, inklusive Perl, Python, PHP, Java, Ruby och Tcl.
För datahantering finns kommandon som inkrementera/Decrementera, standardoperationer för listor och mÀngder (förening, snitt), omdöpning av nycklar, multipla urval och sorteringsfunktioner. TvÄ lagringslÀgen stöds: periodisk synkronisering av data till disk och loggning av Àndringar pÄ disk. I det andra fallet garanteras fullstÀndig bevarande av alla Àndringar. Master-slave replicering av data kan ordnas pÄ flera servrar, vilket sker i icke-blockerande lÀge. Det finns Àven ett meddelandeutbyteslÀge för "publicering/prenumeration", dÀr en kanal skapas och meddelanden frÄn den distribueras till prenumeranter.
NyckelÀndringar i Redis 8.2:
- Ăver 70 kommandon har optimerats sĂ„ att de nu körs snabbare Ă€n i Redis 8.0. Till exempel har kommandot BITCOUNT blivit 35% snabbare, medan kommandon för listaoperationer LINSERT, LREM och LPOS har blivit 25% snabbare. 17 av de optimerade kommandona har blivit minst 5% snabbare, medan 52 har blivit minst 2% snabbare.

- Optimeringar har genomförts i koden för hantering av samtidiga operationer och flertrÄdad in- och utmatning, vilket lett till en 49% ökning av antalet operationer som kan hanteras per sekund i tester med 8 in- och utmatningstrÄdar med en belastningsfördelning pÄ 20% skrivförfrÄgningar och 80% lÀsningar. PÄ en servern kunde grÀnsen pÄ 1 miljon hanterade operationer per sekund överskridas.

- Metoden för lagring av data i nyckel/vĂ€rde-format har fundamentalt förĂ€ndrats â en enhetlig struktur för kvobj anvĂ€nds nu för lagring, vilket möjliggör packning av nyckelns namn, kort vĂ€rde och livslĂ€ngd i en enhet av minnesutrymme och kan klara sig med en enda referens till denna struktur i hash-tabeller, istĂ€llet för separata referenser till nycklar, data och TTL. Vid lagring av korta strĂ€ngvĂ€rden har den nya lagringsmetoden möjliggjort en minskning av minnesanvĂ€ndningen med 25-37%.

- Lagringen av data i JSON-format har optimerats, vilket lett till en minskning av minnesanvÀndningen med 25-67% vid lagring av heltal och flyttal.
- Nya kommandon XACKDEL och XDELEX har lagts till i mekanismen Streams, som anvÀnds för bearbetning och lagring av meddelandeflöden, vilket förenklar arbetet med flöden som har flera mottagare (consumer groups). Kommandona löser problemet med att ta bort ett meddelande först efter att dess mottagande har bekrÀftats av alla behandlare.
- Nya logiska operatorer DIFF, DIFF1, ANDOR och ONE har lagts till i kommandot BITOP, som Àr avsett för utförande av bitoperationer.
- En ny typ av vektorindex, SVS-VAMANA, har lagts till och stöder komprimering av vektorer.
- Nya mÀtvÀrden har lagts till: belastning över individuella platser och fördelning av nyckelstorlekar för grundlÀggande datatyper.
KĂ€lla: opennet.ru



