Utjefte fan Redis 6.0 DBMS

Tariede DBMS release Redis 6.0, dy't ta de klasse fan NoSQL-systemen hearre. Redis leveret Memcached-like funksjes foar it bewarjen fan kaai- / weardegegevens, fersterke troch stipe foar strukturearre gegevensformaten lykas listen, hashes en sets, en de mooglikheid om Lua-hantler-skripts op serverside út te fieren. Projektkoade levere ûnder BSD lisinsje. Oanfoljende modules dy't avansearre mooglikheden biede foar bedriuwen brûkers lykas RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom sûnt ferline jier levere ûnder de proprietêre RSAL-lisinsje. De ûntwikkeling fan iepen ferzjes fan dizze modules ûnder de AGPLv3-lisinsje wurdt fuortset troch it projekt GoodFORM.

Oars as Memcached, leveret Redis oanhâldende opslach fan gegevens op skiif en garandearret de feiligens fan 'e databank yn gefal fan in needôfsluting. De boarnekoade fan it projekt wurdt ferspraat ûnder de BSD-lisinsje. Klantbiblioteken binne beskikber foar de meast populêre talen, ynklusyf Perl, Python, PHP, Java, Ruby en Tcl. Redis stipet transaksjes, wêrtroch jo in groep kommando's yn ien stap kinne útfiere, en soargje foar konsistinsje en konsistinsje (kommando's fan oare oanfragen kinne net ynterferearje) yn 'e útfiering fan in bepaalde set fan kommando's, en yn gefal fan problemen, wêrtroch jo werom kinne rôlje feroarings. Alle gegevens binne folslein cache yn RAM.

Kommando's lykas increment / decrement, standert list en set operaasjes (union, krusing), kaai werneaming, meardere seleksjes, en sortearjen funksjes wurde levere foar gegevens behear. Twa opslach modus wurde stipe: periodike syngronisaasje fan gegevens oan skiif en ûnderhâld fan in feroaring log op skiif. Yn it twadde gefal wurdt folsleine feiligens fan alle feroaringen garandearre. It is mooglik om replikaasje fan master-slave-data te organisearjen nei ferskate servers, útfierd yn in net-blokkearjende modus. In "publisearje / ynskriuwe" messaging modus is ek beskikber, wêryn in kanaal wurdt oanmakke, berjochten dêr't wurde ferspraat oan kliïnten troch abonnemint.

Kaai ferbetteringstafoege yn Redis 6.0:

  • Standert wurdt it nije RESP3-protokol foarsteld, mar ferbiningsopstelling begjint yn RESP2-modus en de kliïnt skeakelt allinich nei it nije protokol as it nije HELLO-kommando wurdt brûkt by it ûnderhanneljen fan de ferbining. RESP3 lit jo komplekse gegevenstypen direkt weromjaan sûnder de needsaak om generike arrays oan 'e kliïntkant te konvertearjen en troch de weromkommende typen te skieden.
  • Stipe foar tagongskontrôlelist (ACL), wêrtroch jo sekuer kinne bepale hokker operaasjes kinne wurde útfierd troch de klant en hokker net. ACL's meitsje it ek mooglik om te beskermjen tsjin mooglike flaters tidens ûntwikkeling, bygelyks in handler dy't allinich de BRPOPLPUSH-operaasje útfiert, kin ferbean wurde om oare operaasjes út te fieren, en as de FLUSHALL-oprop dy't tafoege is by debuggen per ongelok fergetten is yn 'e produksjekoade, sil dit net liede ta problemen. It ymplementearjen fan in ACL hat gjin ekstra overhead en hat praktysk gjin ynfloed op prestaasjes. Interface-modules binne ek taret foar ACL, wêrtroch it mooglik is om jo eigen autentikaasjemetoaden te meitsjen. Om alle opnommen ACL-oertredings te besjen, wurdt it kommando "ACL LOG" levere. Om ûnfoarspelbere sesjekaaien te generearjen, is it kommando "ACL GENPASS" tafoege mei SHA256-basearre HMAC.
  • stipe SSL / TLS om it kommunikaasjekanaal tusken de kliïnt en de tsjinner te fersiferjen.
  • stipe caching gegevens op de klant kant. Om de client-side-cache te fermoedsoenjen mei de steat fan 'e databank, binne twa modi beskikber: 1. Unthâld op 'e tsjinner de kaaien dy't de kliïnt earder frege hat om it te ynformearjen oer it ferlies fan relevânsje fan 'e yngong yn' e client-cache. 2. De "útstjoering" meganisme, dêr't de kliïnt ynskriuwe op bepaalde kaai foarheaksels en de tsjinner notify it as de kaaien dy't falle ûnder dizze foarheaksels feroarje. It foardiel fan 'e "útstjoering" modus is dat de tsjinner gjin ekstra ûnthâld fergrieme op it bewarjen fan in kaart mei wearden yn 'e cache op' e kliïntside, mar it neidiel is dat it oantal oerstjoerde berjochten tanimt.
  • De Disque-berjochtmakelaar, wêrmei jo Redis kinne brûke om berjochtenwachtrijen te ferwurkjen, is fuortsmiten fan 'e basisstruktuer yn aparte module.
  • Added Cluster Proxy, in proxy foar in kluster fan Redis-tsjinners, wêrtroch in kliïnt wurk mei ferskate Redis-tsjinners kin organisearje as wiene se in inkele eksimplaar. De proxy kin fersiken nei knooppunten rûte mei de nedige gegevens, multiplexferbiningen, it kluster opnij konfigurearje as knooppuntfouten wurde ûntdutsen, en fersiken útfiere dy't meardere knooppunten omfetsje.
  • De API foar it skriuwen fan modules is signifikant ferbettere, yn wêzen feroaret Redis yn in ramt wêrmei jo systemen kinne oanmeitsje yn 'e foarm fan tafoegingsmodules.
  • In replikaasjemodus is ymplementearre wêryn RDB-bestannen fuortendaliks wiske wurde nei't se binne brûkt.
  • It PSYNC2-replikaasjeprotokol is ferbettere, wat it mooglik makke hat om faker parsjele resyngronisaasje út te fieren, troch it fergrutsjen fan de kânsen om offsets te identifisearjen dy't mienskiplik binne foar de replika en de master.
  • It laden fan RDB-bestannen is fersneld. Ofhinklik fan 'e triemynhâld farieart de fersnelling fan 20 oant 30%. De útfiering fan it INFO-kommando is signifikant fersneld as d'r in grut oantal ferbûne kliïnten binne.
  • In nij STRALGO kommando is tafoege mei de ymplemintaasje fan komplekse string ferwurkjen algoritmen. Op it stuit is mar ien LCS (langste mienskiplike subsequence) algoritme beskikber, dat kin nuttich wêze by it fergelykjen fan RNA- en DNA-sekwinsjes.

Boarne: opennet.ru

Add a comment