Liberigo de Redis 6.0 DBMS

Preta DBMS-eldono Redis 6.0, apartenanta al la klaso de NoSQL-sistemoj. Redis disponigas Memcached-similajn funkciojn por stokado de ŝlosilaj/valoraj datumoj, plifortigitaj per subteno por strukturitaj datumformatoj kiel ekzemple listoj, haŝiŝoj, kaj aroj, kaj la kapablo ruli servil-flankajn Lua-prizorgilojn. Projekta kodo provizis sub BSD-licenco. Pliaj moduloj kiuj ofertas altnivelajn kapablojn por entreprenaj uzantoj kiel ekzemple RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom ekde la lasta jaro provizis sub la proprieta RSAL-licenco. La evoluo de malfermaj versioj de ĉi tiuj moduloj sub la AGPLv3-licenco estas daŭrigita per la projekto GoodFORM.

Male al Memcached, Redis provizas konstantan konservadon de datumoj sur disko kaj garantias la sekurecon de la datumbazo en la okazo de kriz-halto. La fontkodo de la projekto estas distribuita sub la permesilo BSD. Klientbibliotekoj haveblas por plej popularaj lingvoj, inkluzive de Perl, Python, PHP, Java, Ruby kaj Tcl. Redis subtenas transakciojn, kiuj ebligas al vi ekzekuti grupon da komandoj en unu paŝo, certigante konsistencon kaj konsistencon (komandoj de aliaj petoj ne povas malhelpi) en la ekzekuto de difinita aro de komandoj, kaj en kazo de problemoj, ebligante vin retroiri. ŝanĝoj. Ĉiuj datumoj estas plene konservitaj en RAM.

Komandoj kiel pliigo/malkresko, norma listo kaj aro-operacioj (kuniĝo, intersekco), ŝlosila renomado, multoblaj elektoj kaj ordigaj funkcioj estas disponigitaj por datumadministrado. Du stokadreĝimoj estas subtenataj: perioda sinkronigo de datumoj al disko kaj prizorgado de ŝanĝprotokolo sur disko. En la dua kazo, kompleta sekureco de ĉiuj ŝanĝoj estas garantiita. Eblas organizi reproduktadon de datumoj de majstro-sklavo al pluraj serviloj, farita en ne-bloka reĝimo. Ankaŭ disponeblas mesaĝa reĝimo "publikigi/aboni", en kiu estas kreita kanalo, el kiu mesaĝoj estas distribuataj al klientoj per abono.

Ŝlosilo plibonigojaldonite en Redis 6.0:

  • Defaŭlte, la nova RESP3-protokolo estas proponita, sed konekto-agordo komenciĝas en RESP2-reĝimo kaj la kliento ŝanĝas al la nova protokolo nur se la nova HELLO-komando estas uzata dum negocado de la konekto. RESP3 permesas vin rekte resendi kompleksajn datumtipojn sen la bezono konverti senmarkajn tabelojn ĉe la kliento kaj apartigante la revenspecojn.
  • Subteno de alirkontrola listo (ACL), permesante al vi precize determini, kiuj operacioj povas esti faritaj de la kliento kaj kiuj ne povas. ACL-oj ankaŭ ebligas protekti kontraŭ eblaj eraroj dum evoluo, ekzemple, pritraktilo, kiu plenumas nur la operacion BRPOPLPUSH, povas esti malpermesita ekzekuti aliajn operaciojn, kaj se la alvoko FLUSHALL aldonita dum senararigado estas hazarde forgesita en la produktadkodo, tio estos. ne kondukas al problemoj. Efektivigi ACL ne altiras aldonan superkoston kaj havas preskaŭ neniun efikon al efikeco. Interfacaj moduloj ankaŭ estis preparitaj por ACL, ebligante krei viajn proprajn aŭtentigajn metodojn. Por vidi ĉiujn registritajn ACL-malobservojn, la komando "ACL LOG" estas provizita. Por generi neantaŭvideblajn sesiajn ŝlosilojn, la komando "ACL GENPASS" estis aldonita uzante SHA256-bazitan HMAC.
  • subteno SSL / TLS por ĉifri la komunikadkanalon inter la kliento kaj la servilo.
  • subteno konservado de datumoj ĉe la klienta flanko. Por akordigi la klientflankan kaŝmemoron kun la stato de la datumbazo, estas disponeblaj du reĝimoj: 1. Memorante sur la servilo la ŝlosilojn, kiujn la kliento antaŭe petis, por informi ĝin pri la perdo de graveco de la eniro en la klienta kaŝmemoro. 2. La "dissendado" mekanismo, en kiu la kliento abonas al certaj ŝlosilaj prefiksoj kaj la servilo sciigas ĝin se la ŝlosiloj kiuj kategoriiĝas sub ĉi tiuj prefiksoj ŝanĝiĝas. La avantaĝo de la "elsenda" reĝimo estas, ke la servilo ne malŝparas plian memoron stokante mapon de valoroj kaŝitaj ĉe la klienta flanko, sed la malavantaĝo estas, ke la nombro da elsenditaj mesaĝoj pliiĝas.
  • La mesaĝmakleristo Disque, kiu permesas vin uzi Redis por prilabori mesaĝajn atendovicojn, estis forigita de la baza strukturo en aparta modulo.
  • Aldonita Cluster Proxy, prokurilo por aro de Redis-serviloj, permesante al kliento organizi laboron kun pluraj Redis-serviloj kvazaŭ ili estus ununura petskribo. La prokurilo povas direkti petojn al nodoj kun la necesaj datenoj, multipleksaj ligoj, reagordi la areton se nodfiaskoj estas detektitaj, kaj efektivigi petojn kiuj ampleksas plurajn nodojn.
  • La API por skribi modulojn estis signife plibonigita, esence igante Redis en kadro, kiu ebligas al vi krei sistemojn en formo de aldonaj moduloj.
  • Reprodukta reĝimo estis efektivigita en kiu RDB-dosieroj tuj estas forigitaj post kiam ili estis uzitaj.
  • La reproduktadprotokolo PSYNC2 estis plibonigita, kio ebligis pli ofte elfari partan resinkronigon, pliigante la eblecojn identigi ofsetojn komunajn al la kopio kaj la majstro.
  • Ŝargado de RDB-dosieroj akceliĝis. Depende de la dosierenhavo, la akcelo varias de 20 ĝis 30%. La ekzekuto de la INFO-komando estis signife akcelita kiam estas granda nombro da konektitaj klientoj.
  • Nova STRALGO-komando estis aldonita kun la efektivigo de kompleksaj kordaj pretigaj algoritmoj. Nuntempe, nur unu LCS (plej longa komuna subsekvenco) algoritmo estas havebla, kiu povas esti utila dum komparado de RNA kaj DNA-sekvencoj.

fonto: opennet.ru

Aldoni komenton