Udgivelsen af DBMS Redis 6.0

Forberedt udgivelse af DBMS Redis 6.0, der tilhører klassen af NoSQL-systemer. Redis tilbyder funktioner, der ligner dem i Memcached til datalagring i nøgle/værdi-format, udvidet med support for strukturerede dataformater som lister, hashes og sæt, samt muligheden for at udføre server-side scripts i Lua. Projektets kode leveres under BSD-licensen. Ekstra moduler, der tilbyder udvidede funktioner til virksomhedsanvendelser, såsom RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, har været under udvikling siden sidste år leveres under den proprietære RSAL-licens. Udviklingen af åbne versioner af disse moduler under AGPLv3-licensen er fortsat af projektet GoodFORM.

I modsætning til Memcached sikrer Redis vedvarende datalagring på disk og garanterer databasebevarelse i tilfælde af uventet nedlukning. Projektets kildekoder distribueres under BSD-licensen. Klientbiblioteker er tilgængelige for de fleste populære sprog, herunder Perl, Python, PHP, Java, Ruby og Tcl. Redis understøtter transaktioner, der tillader udførelsen af en gruppe kommandoer i ét skridt, hvilket garanterer konsistens og sekvens (kommandoer fra andre forespørgsler kan ikke blande sig) i udførelsen af det angivne kommando-sæt, samt giving mulighed for at fortryde ændringer i tilfælde af problemer. Alle data caches fuldt ud i hukommelsen.

Til datahåndtering tilbydes kommandoer som inkrementering/dekrementering, standardoperationer på lister og sæt (union, intersection), omdøbning af nøgler, flere forespørgsler og sorteringsfunktioner. To lagringsmetoder understøttes: periodisk synkronisering af data til disk og logføring af ændringer på disken. I det sidste tilfælde garanteres fuld bevarelse af alle ændringer. Det er muligt at organisere master-slave replikering af data til flere servere, gennemført i non-blocking tilstand. Der er også tilgængelig en ”publish/subscribe” messaging-tilstand, hvor et kanal oprettes, hvori beskeder distribueres til abonnenter.

Nøglepunkter forbedringer, tilføjet i Redis 6.0:

  • Som standard foreslås den nye protokol RESP3, men forbindelse starter i RESP2-tilstand, og klienten skifter til den nye protokol, kun hvis den nye HELLO-kommando blev brugt under etableringen af forbindelsen. RESP3 gør det muligt at returnere komplekse datatyper direkte uden behov for at konvertere almindelige arrays på klientens side og deler de returnerede typer.
  • Understøttelse af adgangskontrollister (ACL), der præcist kan definere, hvilke operationer der kan udføres af klienten, og hvilke der ikke kan. ACL giver også mulighed for at beskytte sig mod mulige fejl under udviklingen, for eksempel kan en behandler, der kun udfører BRPOPLPUSH, få forbud mod at udføre andre operationer, og hvis der ved en fejl glemmes et FLUSHALL-kald i arbejdskoden under debugging, vil det ikke føre til problemer. Implementeringen af ACL medfører ingen ekstra omkostninger og har næsten ingen indvirkning på ydeevnen. Der er også interface-moduler klar til ACL, som giver mulighed for at oprette egne autentificeringsmetoder. For at se alle registrerede overtrædelser af ACL er der en kommando kaldet “ACL LOG”. For at generere uforudsigelige sessionsnøgler er der tilføjet en kommando “ACL GENPASS”, der bruger HMAC baseret på SHA256.
  • Support SSL/TLS til kryptering af kommunikationskanalen mellem klienten og serveren.
  • Support caching af data på klientens side. For at synkronisere cachen på klientens side med databasen er der to tilstande tilgængelige: 1. Gemme nøgleoplysninger på serveren, som klienten tidligere har anmodet om, for at informere ham om, at posten i klientens cache ikke længere er aktuel. 2. En “broadcasting”-mekanisme, hvor klienten tilmelder sig bestemte nøglepræfikser, og serveren underretter ham, når der sker ændringer i nøglerne, der falder inden for disse præfikser. Fordelen ved “broadcasting”-tilstanden er, at serveren ikke bruger ekstra hukommelse til at gemme kortet over de cachede værdier på klientens side, mens ulemperne er den øgede mængde meddelelser, der sendes.
  • Meddelelsesbroker Disque, der gør det muligt at bruge Redis til at håndtere beskedkøer, er blevet flyttet ud fra den grundlæggende sammensætning til en separat modul.
  • Tilføjet Cluster Proxy, en proxy for Redis-serverklusteret, der muliggør klientens arbejde med flere Redis-servere som én instans. Proxy'en kan dirigere forespørgsler til noder med de nødvendige data, multiplexere forbindelser, rekonfigurere klustret i tilfælde af nodefejl og udføre forespørgsler, der dækker flere noder.
  • API'en til moduludvikling er betydeligt forbedret, hvilket i praksis har forvandlet Redis til et rammeværk, der muliggør opbygning af systemer i form af modulære udvidelser.
  • Replikationsmodus er implementeret, hvori RDB-filer straks slettes, efter de er blevet brugt.
  • Protokollen for replikation PSYNC2 er forbedret, hvilket muliggør hyppigere delvis re-synkronisering, takket være forhøjede chancer for at opdage en offset, der er fælles for replika og master.
  • Indlæsningen af RDB-filer er blevet hurtigere. Afhængigt af filens indhold er accelerationen mellem 20 og 30%. Udførelsen af INFO-kommandoen er også betydeligt hurtigere med et stort antal tilsluttede klienter.
  • Den nye kommando STRALGO er tilføjet med implementering af komplekse strengebehandlingsalgoritmer. I øjeblikket er kun én algoritme tilgængelig, LCS (longest common subsequence), som kan være nyttig ved sammenligning af RNA- og DNA-sekvenser.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster