Release av Redis 6.0 DBMS

Beredd DBMS release Redis 6.0, som tillhör klassen av NoSQL-system. Redis tillhandahåller Memcached-liknande funktioner för lagring av nyckel-/värdedata, förstärkt av stöd för strukturerade dataformat som listor, hash- och uppsättningar, och möjligheten att köra Lua-hanterarskript på serversidan. Projektkod levereras under BSD-licens. Ytterligare moduler som erbjuder avancerade funktioner för företagsanvändare som RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom sedan förra året levereras under den proprietära RSAL-licensen. Utvecklingen av öppna versioner av dessa moduler under AGPLv3-licensen fortsätter av projektet Bra form.

Till skillnad från Memcached tillhandahåller Redis beständig lagring av data på disk och garanterar säkerheten för databasen i händelse av en nödstopp. Källkoden för projektet distribueras under BSD-licensen. Klientbibliotek är tillgängliga för de flesta populära språken, inklusive Perl, Python, PHP, Java, Ruby och Tcl. Redis stöder transaktioner, som låter dig utföra en grupp av kommandon i ett steg, vilket säkerställer konsistens och konsekvens (kommandon från andra förfrågningar kan inte störa) i exekveringen av en given uppsättning kommandon, och i händelse av problem, låter dig rulla tillbaka ändringar. All data är helt cachad i RAM.

Kommandon som ökning/minskning, standardlista och inställningsoperationer (union, korsning), byte av nycklar, flera val och sorteringsfunktioner tillhandahålls för datahantering. Två lagringslägen stöds: periodisk synkronisering av data till disk och underhåll av en ändringslogg på disk. I det andra fallet garanteras fullständig säkerhet för alla ändringar. Det är möjligt att organisera master-slav-datareplikering till flera servrar, utförd i ett icke-blockerande läge. Ett meddelandeläge "publicera/prenumerera" är också tillgängligt, där en kanal skapas, varifrån meddelanden distribueras till kunder via prenumeration.

Nyckel förbättringarlagt till i Redis 6.0:

  • Som standard föreslås det nya RESP3-protokollet, men anslutningsinstallationen börjar i RESP2-läge och klienten byter till det nya protokollet endast om det nya HELLO-kommandot används när anslutningen förhandlas. RESP3 låter dig returnera komplexa datatyper direkt utan att behöva konvertera generiska arrayer på klientsidan och genom att separera returtyperna.
  • Stöd för åtkomstkontrolllista (ACL), så att du exakt kan bestämma vilka operationer som kan utföras av klienten och vilka som inte kan. ACL:er gör det också möjligt att skydda mot eventuella fel under utveckling, till exempel kan en hanterare som endast utför BRPOPLPUSH-operationen förbjudas att utföra andra operationer, och om FLUSHALL-anropet som lagts till under felsökningen av misstag glöms bort i produktionskoden, kommer detta att inte leda till problem. Att implementera en ACL medför inga extra omkostnader och har praktiskt taget ingen inverkan på prestandan. Gränssnittsmoduler har också förberetts för ACL, vilket gör det möjligt att skapa dina egna autentiseringsmetoder. För att se alla registrerade ACL-överträdelser tillhandahålls kommandot "ACL LOG". För att generera oförutsägbara sessionsnycklar har kommandot "ACL GENPASS" lagts till med SHA256-baserad HMAC.
  • Support SSL / TLS för att kryptera kommunikationskanalen mellan klienten och servern.
  • Support cachning av data på klientsidan. För att stämma av cachen på klientsidan med databasens tillstånd finns två lägen tillgängliga: 1. Att komma ihåg på servern de nycklar som klienten tidigare begärt för att informera den om förlusten av relevans för posten i klientcachen. 2. "Sändningsmekanismen", där klienten prenumererar på vissa nyckelprefix och servern meddelar den om nycklarna som faller under dessa prefix ändras. Fördelen med "broadcasting"-läget är att servern inte slösar ytterligare minne på att lagra en karta över värden som är cachade på klientsidan, men nackdelen är att antalet överförda meddelanden ökar.
  • Disque-meddelandemäklaren, som låter dig använda Redis för att bearbeta meddelandeköer, har tagits bort från grundstrukturen i separat modul.
  • tillsatt Cluster proxy, en proxy för ett kluster av Redis-servrar, vilket gör att en klient kan organisera arbetet med flera Redis-servrar som om de vore en enda instans. Proxyn kan dirigera förfrågningar till noder med nödvändig data, multiplexanslutningar, konfigurera om klustret om nodfel upptäcks och exekvera förfrågningar som sträcker sig över flera noder.
  • API:et för att skriva moduler har förbättrats avsevärt, vilket i huvudsak gör Redis till ett ramverk som låter dig skapa system i form av tilläggsmoduler.
  • Ett replikeringsläge har implementerats där RDB-filer omedelbart raderas efter att de har använts.
  • PSYNC2-replikeringsprotokollet har förbättrats, vilket har gjort det möjligt att utföra partiell omsynkronisering oftare, genom att öka chanserna att identifiera förskjutningar som är gemensamma för repliken och mastern.
  • Inläsningen av RDB-filer har påskyndats. Beroende på filinnehållet varierar accelerationen från 20 till 30 %. Utförandet av INFO-kommandot har påskyndats avsevärt när det finns ett stort antal anslutna klienter.
  • Ett nytt STRALGO-kommando har lagts till med implementeringen av komplexa strängbearbetningsalgoritmer. För närvarande finns endast en LCS-algoritm (longest common subsequence) tillgänglig, vilket kan vara användbart när man jämför RNA- och DNA-sekvenser.

Källa: opennet.ru

Lägg en kommentar