Redis 6.0 vrystelling

Voorbereid DBMS vrystelling Redis 6.0, wat aan die klas van NoSQL-stelsels behoort. Redis bied Memcached-agtige funksies vir die stoor van sleutel-/waardedata, verbeter deur ondersteuning vir gestruktureerde dataformate soos lyste, hashes en stelle, en die vermoë om bedienerkant-skrifhanteerders in Lua te laat loop. Projek kode verskaf onder BSD-lisensie. Bykomende modules wat sedert verlede jaar gevorderde vermoëns bied vir ondernemingsgebruikers soos RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom verskaf onder die eie RSAL-lisensie. Die ontwikkeling van oop weergawes van hierdie modules onder die AGPLv3-lisensie word deur die projek voortgesit GoeieVORM.

Anders as Memcached, bied Redis aanhoudende berging van data op skyf en waarborg die veiligheid van die databasis in die geval van 'n noodstop. Die bronkode van die projek word onder die BSD-lisensie versprei. Kliëntbiblioteke is beskikbaar vir die meeste gewilde tale, insluitend Perl, Python, PHP, Java, Ruby en Tcl. Redis ondersteun transaksies, wat jou toelaat om 'n groep opdragte in een stap uit te voer, wat konsekwentheid en konsekwentheid verseker (opdragte van ander versoeke kan nie inmeng nie) in die uitvoering van 'n gegewe stel opdragte, en in die geval van probleme, sodat jy kan terugrol veranderinge. Alle data is volledig in die RAM gekas.

Opdragte soos inkrement/afname, standaardlys- en stelbewerkings (unie, kruising), sleutelhernoeming, veelvuldige keuses en sorteerfunksies word vir databestuur verskaf. Twee stoormodusse word ondersteun: periodieke sinchronisasie van data na skyf en instandhouding van 'n veranderingslogboek op skyf. In die tweede geval word volledige veiligheid van alle veranderinge gewaarborg. Dit is moontlik om meester-slaaf-datareplikasie na verskeie bedieners te organiseer, uitgevoer in 'n nie-blokkerende modus. 'n "Publiseer/teken in"-boodskapmodus is ook beskikbaar, waarin 'n kanaal geskep word, waarvandaan boodskappe per intekening aan kliënte versprei word.

Sleutel verbeteringsbygevoeg in Redis 6.0:

  • By verstek word die nuwe RESP3-protokol voorgestel, maar verbindingsopstelling begin in RESP2-modus en die kliënt skakel slegs oor na die nuwe protokol as die nuwe HELLO-opdrag gebruik word wanneer die verbinding onderhandel word. RESP3 laat jou toe om komplekse datatipes direk terug te gee sonder dat dit nodig is om generiese skikkings aan die kliëntkant om te skakel en deur die terugkeertipes te skei.
  • Ondersteuning vir toegangsbeheerlys (ACL), sodat jy akkuraat kan bepaal watter bewerkings deur die kliënt uitgevoer kan word en watter nie. ACL's maak dit ook moontlik om teen moontlike foute tydens ontwikkeling te beskerm, byvoorbeeld, 'n hanteerder wat slegs die BRPOPLPUSH-bewerking uitvoer, kan verbied word om ander bewerkings uit te voer, en as die FLUSHALL-oproep wat tydens ontfouting bygevoeg is, per ongeluk in die produksiekode vergeet word, sal dit nie tot probleme lei nie. Die implementering van 'n ACL hou geen bykomende bokoste mee nie en het feitlik geen impak op prestasie nie. Koppelvlakmodules is ook vir ACL voorberei, wat dit moontlik maak om jou eie verifikasiemetodes te skep. Om alle aangetekende ACL-oortredings te sien, word die "ACL LOG"-opdrag verskaf. Om onvoorspelbare sessiesleutels te genereer, is die "ACL GENPASS"-opdrag bygevoeg met behulp van SHA256-gebaseerde HMAC.
  • Ondersteun SSL / TLS om die kommunikasiekanaal tussen die kliënt en die bediener te enkripteer.
  • Ondersteun kas data aan die kliënt kant. Om die kliënt-kant-kas met die toestand van die databasis te versoen, is twee modusse beskikbaar: 1. Onthou op die bediener van die sleutels wat die kliënt voorheen versoek het om hom in te lig oor die verlies aan relevansie van die inskrywing in die kliëntkas. 2. Die “uitsaai”-meganisme, waarin die kliënt inteken op sekere sleutelvoorvoegsels en die bediener dit in kennis stel as die sleutels wat onder hierdie voorvoegsels val, verander. Die voordeel van die "uitsaai"-modus is dat die bediener nie addisionele geheue mors op die stoor van 'n kaart van waardes wat aan die kliëntkant gekas is nie, maar die nadeel is dat die aantal gestuurde boodskappe toeneem.
  • Die Disque-boodskapmakelaar, wat jou toelaat om Redis te gebruik om boodskaprye te verwerk, is verwyder van die basiese struktuur in aparte module.
  • Bygevoeg Cluster Proxy, 'n instaanbediener vir 'n groep Redis-bedieners, wat 'n kliënt toelaat om werk met verskeie Redis-bedieners te organiseer asof dit 'n enkele geval is. Die instaanbediener kan versoeke na nodusse stuur met die nodige data, multipleksverbindings, die groep herkonfigureer as nodusfoute bespeur word, en versoeke uitvoer wat oor verskeie nodusse strek.
  • Die API vir die skryf van modules is aansienlik verbeter, wat Redis in wese verander in 'n raamwerk wat jou toelaat om stelsels te skep in die vorm van byvoegingsmodules.
  • 'n Replikasiemodus is geïmplementeer waarin RDB-lêers onmiddellik uitgevee word nadat dit gebruik is.
  • Die PSYNC2-replikasieprotokol is verbeter, wat dit moontlik gemaak het om meer gereeld gedeeltelike hersinchronisasie uit te voer, deur die kanse te verhoog om afwykings te identifiseer wat gemeen is aan die replika en die meester.
  • Die laai van RDB-lêers is versnel. Afhangende van die lêerinhoud, wissel die versnelling van 20 tot 30%. Die uitvoering van die INFO-opdrag is aansienlik versnel wanneer daar 'n groot aantal gekoppelde kliënte is.
  • 'n Nuwe STRALGO-opdrag is bygevoeg met die implementering van komplekse stringverwerkingsalgoritmes. Tans is slegs een LCS (langste algemene subvolgorde) algoritme beskikbaar, wat nuttig kan wees wanneer RNA- en DNA-volgordes vergelyk word.

Bron: opennet.ru

Voeg 'n opmerking