Utgivelse av databasesystemet Redis 7.0

Redis 7.0 er lansert, og tilhører kategorien av NoSQL-systemer. Redis tilbyr funksjoner for lagring av data i nøkkel/verdi-format, med utvidet støtte for strukturerte dataformater som lister, hasher og sett, samt muligheten for å kjøre server-side skript på Lua. Prosjektkoden distribueres under BSD-lisens. Ytterligere moduler med utvidede funksjoner for bedriftsbrukere, som RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, tilbys siden 2019 under en proprietær RSAL-lisens. Utviklingen av åpne versjoner av disse modulene under AGPLv3-lisensen har blitt forsøkt fortsatt av prosjektet GoodFORM, som for tiden er i stagnasjon.

I motsetning til minnebaserte lagringssystemer som Memcached, gir Redis vedvarende datalagring på disk og garanterer databaseintegritet ved krasj. Kildekoden for prosjektet distribueres under BSD-lisens. 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 garanterer konsistens og sekvens (kommandoer fra andre forespørsel kan ikke blande seg inn) ved utførelse av angitte kommandoer, og i tilfelle feil tillater tilbakeføring av endringer. Alle data blir fullt cachet i minnet.

For databehandling tilbys kommandoer som inkrementering/dekrementering, standardoperasjoner for lister og sett (forening, skjæring), omdøping av nøkler, flerfaglige utvalg og sorteringsfunksjoner. To lagringsmoduser støttes: periodisk synkronisering av data til disk og vedlikehold av en logger for endringer på disk. I det andre tilfellet garanteres full bevaring av alle endringer. Det er mulig å organisere master-slave datamatching for flere servere, utført i ikke-blokkerende modus. Det er også tilgjengelig en meldingsutvekslingsmodus for «publisering/abonnement», der det opprettes en kanal hvor meldinger distribueres til abonnenter.

Nøkkelendringer i Redis 7.0:

  • Støtte for funksjoner som kjøres på server-siden er lagt til serveren. I motsetning til tidligere støttede skript på Lua, er funksjonene ikke bundet til applikasjonen, men har som mål å implementere ekstra logikk som utvider serverens muligheter. Funksjoner behandles sømløst med dataene og i tilknytning til databasen, ikke til applikasjonen, inkludert replikering og lagring i vedvarende lagring.
  • Den andre utgaven av ACL er foreslått, som gjør det mulig å styre datatilgang basert på nøkler og tillater definisjon av forskjellige sett med tilgangsregler for kommandoer med mulighet for å knytte flere velgere (sett med tillatelser) til hver bruker. Hver nøkkel kan være identifisert med bestemte tillatelser, for eksempel kan man begrense tilgang til bare lesing eller skriving av et bestemt delsett av nøkler.
  • Det er utarbeidet en funksjonell sekventert (sharded) implementering av publiserings-abonnementsparadigmet, der en melding sendes til en spesifikk node, som er knyttet til meldingskanalen, hvoretter meldingen videresendes til de andre nodene i seksjonen (shard). Kunder kan motta meldinger ved å abonnere på kanalen, både ved å koble til hovednoden og til sekundære noder i seksjonen. Administrasjon skjer ved hjelp av kommandoene SSUBSCRIBE, SUNSUBSCRIBE og SPUBLISH.
  • Støtte for behandling av underkommandoer i de fleste kontekster er lagt til.
  • Nye kommandoer lagt til:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • SPUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • COMMAND DOCS, COMMAND LIST.
    • LATENCY HISTOGRAM.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • CLIENT NO-EVICT.
    • ACL DRYRUN.
  • Muligheten for å håndtere flere konfigurasjoner i ett enkelt kall CONFIG SET/GET er lagt til.
  • Programmet redis-cli har fått alternativene «—json», «-2», «—scan», «—functions-rdb».
  • Som standard er tilgangen for kunder til innstillinger og kommandoer som påvirker sikkerheten, deaktivert (for eksempel er kommandoene DEBUG og MODULE deaktivert, og endringer av konfigurasjoner med PROTECTED_CONFIG-flagget er forbudt). I redis-cli er utdataene til filen med kommandohistorikk som inneholder sensitive opplysninger, stoppet.
  • En stor mengde optimaliseringer er gjort for å forbedre ytelse og redusere minneforbruket. For eksempel er minneforbruket betydelig redusert når klustermodus er aktivert, ved utføring av copy-on-write-operasjoner, og ved arbeid med hasher og nøkler i zset. Logikken for å skrive data til disken (fsync-anropet) er forbedret. Antallet nettverkspakker og systemkall når svar sendes til kunden er redusert. Replikasjonsprosessen er blitt mer effektiv.
  • Sikkerhetsproblem CVE-2022-24735 har blitt utbedret i miljøet for kjøring av Lua-skript, som gjør det mulig å injisere sin egen Lua-kode og få den utført i konteksten til en annen bruker, også en som har høyere privilegier.
  • Sikkerhetsproblem CVE-2022-24736 har blitt utbedret, som kan føre til at prosessen redis-server krasjer på grunn av avreferering av en nullpeker. Angrepet skjer gjennom lasting av spesialdesignede Lua-skript.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster