Uscita del DBMS Redis 6.0

Preparato rilascio del DBMS Redis 6.0, appartenente alla categoria dei sistemi NoSQL. Redis offre funzioni simili a Memcached per la memorizzazione dei dati in formato chiave/valore, ampliate dal supporto di formati di dati strutturati, come liste, hash e set, nonché la possibilità di eseguire script di gestione sul server in linguaggio Lua. Il codice del progetto fornito è distribuito sotto licenza BSD. Moduli aggiuntivi che offrono funzionalità avanzate per gli utenti aziendali, come RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, dall'anno scorso vengono forniti sono sotto licenza proprietaria RSAL. Lo sviluppo di opzioni aperte per questi moduli sotto licenza AGPLv3 è proseguito con il progetto GoodFORM.

A differenza di Memcached, Redis garantisce la persistenza dei dati su disco e assicura l'integrità del database in caso di arresto anomalo. I codici sorgenti del progetto sono distribuiti con licenza BSD. Le librerie client sono disponibili per la maggior parte dei linguaggi popolari, tra cui Perl, Python, PHP, Java, Ruby e Tcl. Redis supporta le transazioni, che permettono di eseguire un insieme di comandi in un'unica operazione, garantendo coerenza e sequenzialità (i comandi provenienti da altre richieste non possono intervenire) nell'esecuzione di un determinato insieme di comandi e, in caso di problemi, consente di annullare le modifiche. Tutti i dati vengono memorizzati completamente in memoria.

Per gestire i dati, sono disponibili comandi come incremento/decremento, operazioni standard su liste e set (unione, intersezione), rinomina di chiavi, selezioni multiple e funzioni di ordinamento. Sono supportati 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 integrità di tutte le modifiche. È possibile organizzare la replica master-slave dei dati su più server, eseguita in modalità non bloccante. È disponibile anche una modalità di messaggistica di tipo 'pubblica/sottoscrizione', in cui viene creato un canale da cui i messaggi vengono inviati ai client in base all'iscrizione.

Le chiave miglioramenti, aggiunti in Redis 6.0:

  • Per impostazione predefinita è stato proposto un nuovo protocollo RESP3, ma l'installazione della connessione inizia in modalità RESP2 e il client passa al nuovo protocollo solo se nella negoziazione della connessione è stato utilizzato il nuovo comando HELLO. RESP3 consente di restituire direttamente tipi complessi di dati senza la necessità di convertire array generali sul lato client e separando i tipi restituiti.
  • Supporto per le liste di controllo degli accessi (ACL), che consentono di specificare esattamente quali operazioni un client può eseguire e quali no. Le ACL offrono inoltre la possibilità di proteggersi da possibili errori di sviluppo; ad esempio, è possibile vietare a un gestore che esegue solo l'operazione BRPOPLPUSH di eseguire altre operazioni, e nel caso in cui nel codice di lavoro venga accidentalmente dimenticata una chiamata FLUSHALL aggiunta durante il debug, questo non porterà a problemi. L'implementazione delle ACL non comporta costi aggiuntivi e influisce poco sulle prestazioni. Sono stati inoltre preparati moduli di interfaccia per le ACL, che consentono di creare metodi di autenticazione personalizzati. È disponibile il comando “ACL LOG” per visualizzare tutte le violazioni delle ACL registrate. Per generare chiavi di sessione imprevedibili è stato aggiunto il comando “ACL GENPASS”, che utilizza HMAC basato su SHA256.
  • Supporto SSL/TLS per crittografare il canale di comunicazione tra client e server.
  • Supporto memorizzazione nella cache dei dati sul lato client. Per allineare la cache sul lato client con lo stato del database sono disponibili due modalità: 1. Memorizzazione nella cache sul server delle chiavi richieste in precedenza dal client, per informarlo della perdita di validità delle voci nella cache del client. 2. Meccanismo di “broadcasting”, in cui il client si iscrive a determinati prefissi di chiavi e il server lo avvisa in caso di modifica delle chiavi che rientrano in questi prefissi. Il vantaggio della modalità “broadcasting” è che il server non consuma memoria aggiuntiva per memorizzare la mappa dei valori memorizzati nella cache dal lato client, ma lo svantaggio è l'aumento del numero di messaggi trasmessi.
  • Il broker di messaggi Disque, che consente di utilizzare Redis per gestire le code di messaggi, è stato spostato dalla composizione di base in un modulo separato.
  • Aggiunto Cluster Proxy, un proxy per il cluster di server Redis, che consente di organizzare il lavoro del client con più server Redis come se fossero un'unica istanza. Il proxy può instradare richieste verso nodi con i dati necessari, multiplexare le connessioni, riconfigurare il cluster in caso di guasti dei nodi, eseguire richieste che coinvolgono più nodi.
  • API notevolmente migliorata per la scrittura di moduli, che ha essenzialmente trasformato Redis in un framework che consente di creare sistemi sotto forma di moduli di estensione.
  • Introdotta la modalità di replica in cui i file RDB vengono immediatamente eliminati dopo essere stati utilizzati.
  • Migliorato il protocollo di replica PSYNC2, che ha consentito di eseguire più frequentemente la risincronizzazione parziale, aumentando le possibilità di rilevare una discrepanza comune tra replica e master.
  • Accelerato il caricamento dei file RDB. A seconda della configurazione del file, l'accelerazione varia dal 20 al 30%. Completamente accelerata l'esecuzione del comando INFO in presenza di un gran numero di client connessi.
  • Aggiunto un nuovo comando STRALGO con l'implementazione di complessi algoritmi di elaborazione delle stringhe. Attualmente è disponibile solo un algoritmo, LCS (longest common subsequence), che può essere utile per confrontare sequenze di RNA e DNA.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster