Utgivelse av Redis 6.0 DBMS

Forberedt DBMS-utgivelse Redis 6.0, som tilhører klassen av NoSQL-systemer. Redis gir Memcached-lignende funksjoner for lagring av nøkkel-/verdidata, forbedret med støtte for strukturerte dataformater som lister, hashes og sett, og muligheten til å kjøre Lua-håndteringsskript på serversiden. Prosjektkode medfølgende under BSD-lisens. Tilleggsmoduler som tilbyr avanserte funksjoner for bedriftsbrukere som RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom siden i fjor medfølgende under den proprietære RSAL-lisensen. Utviklingen av åpne versjoner av disse modulene under AGPLv3-lisensen videreføres av prosjektet GodFORM.

I motsetning til Memcached, gir Redis vedvarende lagring av data på disk og garanterer sikkerheten til databasen i tilfelle en nødstans. Kildekoden til prosjektet distribueres under BSD-lisensen. Klientbiblioteker er tilgjengelige for de fleste populære språk, inkludert Perl, Python, PHP, Java, Ruby og Tcl. Redis støtter transaksjoner, som lar deg utføre en gruppe kommandoer i ett trinn, og sikrer konsistens og konsistens (kommandoer fra andre forespørsler kan ikke forstyrre) i utførelsen av et gitt sett med kommandoer, og i tilfelle problemer, lar deg rulle tilbake Endringer. Alle data er fullt bufret i RAM.

Kommandoer som økning/redusering, standard liste- og settoperasjoner (union, skjæringspunkt), navn på nøkkel, flere valg og sorteringsfunksjoner er tilgjengelig for databehandling. To lagringsmoduser støttes: periodisk synkronisering av data til disk og vedlikehold av en endringslogg på disk. I det andre tilfellet er fullstendig sikkerhet for alle endringer garantert. Det er mulig å organisere master-slave-datareplikering til flere servere, utført i en ikke-blokkerende modus. En "publiser/abonner" meldingsmodus er også tilgjengelig, der det opprettes en kanal, hvorfra meldinger distribueres til klienter via abonnement.

Nøkkel forbedringerlagt til i Redis 6.0:

  • Som standard foreslås den nye RESP3-protokollen, men tilkoblingsoppsettet begynner i RESP2-modus og klienten bytter til den nye protokollen bare hvis den nye HELLO-kommandoen brukes når tilkoblingen forhandles. RESP3 lar deg returnere komplekse datatyper direkte uten å måtte konvertere generiske arrays på klientsiden og ved å skille returtypene.
  • Støtte for tilgangskontrollliste (ACL), slik at du nøyaktig kan bestemme hvilke operasjoner som kan utføres av klienten og hvilke som ikke kan. ACL-er gjør det også mulig å beskytte mot mulige feil under utvikling, for eksempel kan en behandler som kun utfører BRPOPLPUSH-operasjonen bli forhindret fra å utføre andre operasjoner, og hvis FLUSHALL-kallet som ble lagt til under feilsøking glemmes ved et uhell i produksjonskoden, vil dette ikke føre til problemer. Implementering av en ACL medfører ingen ekstra kostnader og har praktisk talt ingen innvirkning på ytelsen. Det er også utarbeidet grensesnittmoduler for ACL, som gjør det mulig å lage egne autentiseringsmetoder. For å se alle registrerte ACL-brudd, er "ACL LOG"-kommandoen gitt. For å generere uforutsigbare sesjonsnøkler, er "ACL GENPASS"-kommandoen lagt til ved bruk av SHA256-basert HMAC.
  • Støtte SSL / TLS å kryptere kommunikasjonskanalen mellom klienten og serveren.
  • Støtte cache data på klientsiden. For å avstemme cachen på klientsiden med databasens tilstand, er to moduser tilgjengelige: 1. Huske på serveren nøklene som klienten tidligere ba om for å informere den om tapet av relevansen til oppføringen i klientbufferen. 2. "Kringkastingsmekanismen", der klienten abonnerer på visse nøkkelprefikser og serveren varsler den hvis nøklene som faller inn under disse prefiksene endres. Fordelen med "kringkasting"-modus er at serveren ikke kaster bort ekstra minne på å lagre et kart over verdier som er bufret på klientsiden, men ulempen er at antallet overførte meldinger øker.
  • Disque-meldingsmegleren, som lar deg bruke Redis til å behandle meldingskøer, er fjernet fra grunnstrukturen i egen modul.
  • La til Cluster proxy, en proxy for en klynge av Redis-servere, som lar en klient organisere arbeidet med flere Redis-servere som om de var en enkelt forekomst. Proxyen kan rute forespørsler til noder med nødvendige data, multipleksforbindelser, rekonfigurere klyngen hvis nodefeil oppdages, og utføre forespørsler som spenner over flere noder.
  • API for skriving av moduler har blitt betydelig forbedret, og gjør Redis om til et rammeverk som lar deg lage systemer i form av tilleggsmoduler.
  • En replikeringsmodus er implementert der RDB-filer slettes umiddelbart etter at de har blitt brukt.
  • PSYNC2-replikeringsprotokollen har blitt forbedret, noe som har gjort det mulig å utføre delvis resynkronisering oftere, ved å øke sjansene for å identifisere forskyvninger som er felles for replikaen og masteren.
  • Lasting av RDB-filer har blitt fremskyndet. Avhengig av filinnholdet varierer akselerasjonen fra 20 til 30 %. Utførelsen av INFO-kommandoen har blitt betydelig akselerert når det er et stort antall tilkoblede klienter.
  • En ny STRALGO-kommando er lagt til med implementering av komplekse strengbehandlingsalgoritmer. Foreløpig er bare én LCS (lengste felles subsequence) algoritme tilgjengelig, noe som kan være nyttig når man sammenligner RNA- og DNA-sekvenser.

Kilde: opennet.ru

Legg til en kommentar