Versione di Redis 7.0

A liberazione di u DBMS Redis 7.0, chì appartene à a classa di sistemi NoSQL, hè stata publicata. Redis furnisce funzioni per almacenà e dati chjave / valore, rinfurzatu da u supportu per i formati di dati strutturati cum'è liste, hashes, è insemi, è ancu a capacità di eseguisce gestori di script di u servitore in Lua. U codice di u prugettu hè furnitu sottu a licenza BSD. Moduli supplementari chì offrenu capacità avanzate per l'utilizatori corporativi, cum'è RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, sò stati furniti sottu una licenza RSAL proprietaria da u 2019. U prughjettu GoodFORM, chì hè statu stagnatu pocu tempu, hà pruvatu à cuntinuà u sviluppu di versioni aperti di sti moduli sottu a licenza AGPLv3.

A cuntrariu di i sistemi di almacenamento in memoria cum'è Memcached, Redis assicura chì e dati sò persistenti in u discu è assicura chì a basa di dati resta intacta in casu di crash. U codice fonte di u prugettu hè distribuitu sottu a licenza BSD. I biblioteche di i clienti sò dispunibuli per a più lingue populari, cumprese Perl, Python, PHP, Java, Ruby è Tcl. Redis sustene e transazzione, chì permettenu di eseguisce un gruppu di cumandamenti in un passu, assicurendu a coherenza è a coherenza (i cumandamenti da altre dumande ùn ponu interferiscenu) in l'esekzione di un determinatu set di cumandamenti, è in casu di prublemi, chì vi permettenu di retrocede. cambiamenti. Tutti i dati sò cumpletamente cache in RAM.

Cumandamenti cum'è l'incrementu / decrementu, a lista standard è l'operazioni di set (unione, intersezzione), rinominazione di chjave, selezioni multiple è funzioni di sorte sò furnite per a gestione di dati. Dui modi di almacenamento sò supportati: sincronizazione periodica di dati à u discu è mantenimentu di un logu di cambiamentu nantu à u discu. In u sicondu casu, a sicurità cumpleta di tutti i cambiamenti hè garantita. Hè pussibule urganizà a replicazione di dati master-slave à parechji servitori, realizatu in modu senza bloccu. Un modu di messageria "pubblicà / abbonate" hè ancu dispunibule, in quale hè creatu un canale, i missaghji da quale sò distribuiti à i clienti per abbunamentu.

Cambiamenti chjave in Redis 7.0:

  • Supportu aghjuntu per e funzioni di u servitore. A cuntrariu di i scripts supportati prima in a lingua Lua, e funzioni ùn sò micca ligati à l'applicazione è sò destinati à implementà una logica supplementaria chì espansione e capacità di u servitore. E funzioni sò trattate inestricabilmente cù e dati è in relazione à a basa di dati, è micca à l'applicazione, cumpresu esse replicati è almacenati in almacenamiento persistente.
  • Una seconda edizione di l'ACL hè stata pruposta, chì permette di cuntrullà l'accessu à e dati basati nantu à i chjavi è permette di definisce diverse sette di regule per accede à i cumandamenti cù a capacità di ligà parechji selettori (set di permessi) à ogni utilizatore. Ogni chjave pò esse identificata cù una autorità specifica, per esempiu, pudete limità l'accessu solu per leghje o scrive un certu subset di chjave.
  • Hè furnita una implementazione partizionata (sharded) di u paradigma di distribuzione di missaghju Publish-Subscribe in esecuzione in un cluster, in quale un messagiu hè mandatu à un node specificu à quale hè attaccatu un canale di messagiu, dopu chì stu missaghju hè reindirizzatu à u restu di u messagiu. nodi inclusi in u shard. I clienti ponu riceve messagi sottumessi à un canale, sia cunnessu à u node principale sia à i nodi secundari di a sezione. U cuntrollu hè realizatu cù i cumandamenti SSUBSCRIBE, SUNSUBSCRIBE è SPUBLISH.
  • Aghjunghje supportu per processà i subcumandamenti in a maiò parte di i cuntesti.
  • Novi cumandamenti aghjuntu:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • SPUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • TEMPU EXPIRE, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNZIONE *, FCALL, FCALL_RO.
    • DOCUMENTI DI COMMAND, LISTA DI COMMAND.
    • HISTOGRAMA DI LATENZA.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • CLIENT NO-EVICT.
    • ACL DRYRUN.
  • A capacità di processà parechje cunfigurazioni in una volta in una sola chiamata CONFIG SET / GET hè stata furnita.
  • L'opzioni "-json", "-2", "-scan", "-functions-rdb" sò state aghjunte à l'utilità redis-cli.
  • Per automaticamente, l'accessu di u cliente à i paràmetri è i cumandamenti chì affettanu a sicurità hè disattivatu (per esempiu, i cumandamenti DEBUG è MODULE sò disattivati, cambià a cunfigurazione cù a bandiera PROTECTED_CONFIG hè pruibita). Redis-cli ùn emette più cumandamenti chì cuntenenu dati sensibili à un schedariu di storia.
  • Una grande parte di l'ottimisazioni hè stata introdotta per aumentà u rendiment è riduce u cunsumu di memoria. Per esempiu, u cunsumu di memoria hè stata ridutta significativamente quandu attivate u modu di cluster, quandu eseguite operazioni di copia in scrittura, è quandu travagliate cù hash è zset keys. Lògica mejorata per u flussu di dati à u discu (fsync call). U nùmeru di pacchetti di rete è e chjama di u sistema quandu invià risposti à u cliente hè stata ridutta. L'efficienza di replicazione hè stata migliurata.
  • A vulnerabilità CVE-2022-24735 in l'ambienti per eseguisce script Lua hè stata fissata, chì vi permette di rimpiazzà u vostru propiu codice Lua è ottene a so esecuzione in u cuntestu di un altru utilizatore, cumpresu unu cù privilegi più altu.
  • Corretta a vulnerabilità CVE-2022-24736, chì permette à u prucessu di redis-server di crash per causa di dereference di puntatore NULL. L'attaccu hè realizatu attraversu a carica di script Lua apposta.

Source: opennet.ru

Add a comment