Rilascio del DBMS Redis 6.0

Preparato Rilascio del DBMS Redi 6.0, appartenente alla classe dei sistemi NoSQL. Redis fornisce funzioni simili a Memcached per l'archiviazione di dati chiave/valore, migliorate dal supporto per formati di dati strutturati come elenchi, hash e set e dalla possibilità di eseguire script del gestore Lua lato server. Codice del progetto in dotazione sotto licenza BSD. Moduli aggiuntivi che offrono funzionalità avanzate per utenti aziendali come RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom dallo scorso anno fornito sotto la licenza proprietaria RSAL. Il progetto prosegue lo sviluppo di versioni aperte di questi moduli sotto la licenza AGPLv3 BuonaFORMA.

A differenza di Memcached, Redis fornisce l'archiviazione persistente dei dati su disco e garantisce la sicurezza del database in caso di arresto di emergenza. Il codice sorgente del progetto è distribuito sotto la licenza BSD. Le librerie client sono disponibili per i linguaggi più diffusi, tra cui Perl, Python, PHP, Java, Ruby e Tcl. Redis supporta le transazioni, che consentono di eseguire un gruppo di comandi in un unico passaggio, garantendo coerenza e coerenza (i comandi di altre richieste non possono interferire) nell'esecuzione di un determinato insieme di comandi e, in caso di problemi, consentendo di eseguire il rollback i cambiamenti. Tutti i dati sono completamente memorizzati nella cache nella RAM.

Per la gestione dei dati vengono forniti comandi come incremento/decremento, elenchi standard e operazioni di insieme (unione, intersezione), ridenominazione dei tasti, selezioni multiple e funzioni di ordinamento. Sono supportate due modalità di archiviazione: sincronizzazione periodica dei dati su disco e mantenimento di un registro delle modifiche su disco. Nel secondo caso è garantita la completa sicurezza di tutte le modifiche. È possibile organizzare la replica dei dati master-slave su più server, effettuata in modalità non bloccante. È inoltre disponibile una modalità di messaggistica "pubblica/sottoscrivi", in cui viene creato un canale dal quale i messaggi vengono distribuiti ai clienti tramite abbonamento.

Chiave miglioramentiaggiunto in Redis 6.0:

  • Per impostazione predefinita, viene proposto il nuovo protocollo RESP3, ma l'impostazione della connessione inizia in modalità RESP2 e il client passa al nuovo protocollo solo se viene utilizzato il nuovo comando HELLO durante la negoziazione della connessione. RESP3 consente di restituire direttamente tipi di dati complessi senza la necessità di convertire array generici sul lato client e separando i tipi restituiti.
  • Supporto dell'elenco di controllo degli accessi (ACL), consentendo di determinare con precisione quali operazioni possono essere eseguite dal cliente e quali no. Gli ACL consentono inoltre di proteggersi da possibili errori durante lo sviluppo, ad esempio, a un gestore che esegue solo l'operazione BRPOPLPUSH può essere impedito di eseguire altre operazioni e se la chiamata FLUSHALL aggiunta durante il debug viene dimenticata accidentalmente nel codice di produzione, ciò verrà non portare a problemi. L'implementazione di una ACL non comporta alcun sovraccarico aggiuntivo e non ha praticamente alcun impatto sulle prestazioni. Sono stati predisposti anche moduli di interfaccia per ACL che consentono di creare i propri metodi di autenticazione. Per visualizzare tutte le violazioni ACL registrate, viene fornito il comando “ACL LOG”. Per generare chiavi di sessione imprevedibili, è stato aggiunto il comando "ACL GENPASS" utilizzando HMAC basato su SHA256.
  • Sostegno SSL / TLS per crittografare il canale di comunicazione tra il client e il server.
  • Sostegno memorizzazione nella cache dei dati sul lato client. Per riconciliare la cache lato client con lo stato del database sono disponibili due modalità: 1. Ricordare sul server le chiavi che il client ha precedentemente richiesto per informarlo della perdita di rilevanza della voce nella cache del client. 2. Il meccanismo di “broadcasting”, in cui il client sottoscrive determinati prefissi di chiave e il server lo avvisa se le chiavi che rientrano in questi prefissi cambiano. Il vantaggio della modalità "broadcasting" è che il server non spreca memoria aggiuntiva memorizzando una mappa di valori memorizzata nella cache sul lato client, ma lo svantaggio è che aumenta il numero di messaggi trasmessi.
  • Il broker di messaggi Disque, che consente di utilizzare Redis per elaborare le code di messaggi, è stato rimosso dalla struttura di base in modulo separato.
  • Aggiunto Proxy del cluster, un proxy per un cluster di server Redis, che consente a un client di organizzare il lavoro con diversi server Redis come se fossero una singola istanza. Il proxy può instradare richieste ai nodi con i dati necessari, connessioni multiplex, riconfigurare il cluster se vengono rilevati errori dei nodi ed eseguire richieste che si estendono su più nodi.
  • L'API per la scrittura dei moduli è stata notevolmente migliorata, trasformando essenzialmente Redis in un framework che consente di creare sistemi sotto forma di moduli aggiuntivi.
  • È stata implementata una modalità di replica in cui i file RDB vengono immediatamente eliminati dopo essere stati utilizzati.
  • È stato migliorato il protocollo di replica PSYNC2 che ha permesso di eseguire più spesso la risincronizzazione parziale, aumentando le possibilità di individuare offset comuni alla replica e al master.
  • Il caricamento dei file RDB è stato accelerato. A seconda del contenuto del file, l'accelerazione varia dal 20 al 30%. L'esecuzione del comando INFO è stata notevolmente accelerata in caso di numerosi client collegati.
  • È stato aggiunto un nuovo comando STRALGO con l'implementazione di algoritmi complessi di elaborazione delle stringhe. Attualmente è disponibile un solo algoritmo LCS (longest common subsequence), che può essere utile quando si confrontano sequenze di RNA e DNA.

Fonte: opennet.ru

Aggiungi un commento