Che cos’è Redis? Presentazione del database

I database relazionali sono utilizzati nella maggior parte dei progetti informatici. Che si tratti di web design o di sviluppo software, i database basati su tabelle forniscono risultati buoni e stabili nella maggior parte degli scenari. Ma sono sempre la scelta migliore? Negli ultimi anni sono state introdotte sul mercato diverse tipologie di database, ciascuna con i propri vantaggi. I cosiddetti databse NoSQL sono altamente raccomandati per alcuni tipi di progetti. Redis è uno di questi. Come funziona questa modalità di archiviazione dei dati e quali sono i vantaggi?

Spiegazione del database Redis

Il nome Redis sta per Remote Dictionary Server. Questo tipo di server è adatto per la memorizzazione veloce dei dati. In qualità di sistema di gestione di database (DBMS), Redis offre sia un database in memoria centrale (in-memory database), sia un database chiave-valore (key-value store.)

  • In-memory database: in queste banche dati, il DBMS memorizza tutti i dati direttamente in memoria. Ciò garantisce tempi di accesso molto brevi, anche con grandi volumi di dati non strutturati.
  • Key-value store: i database chiave-valore convincono per le loro elevate prestazioni e possono essere facilmente scalati grazie alla loro semplice struttura. Per ogni voce viene creata una chiave che può essere utilizzata per il recupero delle informazioni.

Nel caso di un server Redis, i dati non sono quindi memorizzati sul disco rigido, ma nella memoria principale. In questo modo Redis è sia cache, sia memoria: che le informazioni siano memorizzate in modo permanente nel database o solo per un breve periodo di tempo, non fa alcuna differenza.

Ogni voce nel database riceve una chiave. Grazie a tali chiavi, i dati possono essere facilmente recuperati. Le voci non sono collegate tra loro e quindi non devono essere richieste passando attraverso diverse tabelle. Le informazioni sono disponibili direttamente.

La memorizzazione nella memoria principale implica tuttavia il rischio di perdere tutti i dati in caso di crash del server. Per evitare questo, Redis duplica regolarmente tutti i dati sul disco rigido di backup o salva tutti i comandi necessari per il ripristino in un file di log.

La struttura tipica dei dati di Redis è costituita da semplici stringhe di caratteri. Anche le chiavi (una delle parti del key-value store) sono implementate come stringhe. Tuttavia, il sistema può gestire anche altre tipologie di strutture dati:

  • Strings: stringa di caratteri con dimensione massima di 512 MB
  • Hashes: entrata con diversi campi e valori
  • Lists: stringhe ordinate in base all’ordine di aggiunta
  • Sets: stringhe prive di ordine
  • Sorted sets: stringhe ordinate in base a un determinato valore
  • Bitmaps: operazioni a livello di bit
  • HyperLogLogs: stima basata su valori univoci in un dataset
  • Streams: stringhe o coppie chiave-valore complesse

Poiché Redis è open source, molti sviluppatori lavorano su possibili estensioni del DBMS. Questi moduli ampliano la funzionalità del database, di per sé molto semplice, e adattano il software ad applicazioni specifiche.

Per tutelare la vostra privacy il video si caricherà dopo aver cliccato.

Fatto

Redis è open source e può essere usato da tutti gratuitamente. Lo sponsor principale di Redis è la società Redis Labs. Questa azienda offre versioni cloud del software a pagamento.

A quali ambiti di applicazione si addice maggiormente Redis?

Redis è tipicamente usato come cache. Twitter, ad esempio, utilizza questo tipo di database: la timeline del servizio di messaggistica è realizzata da una cache Redis. Essa consiste in una lista che può essere rapidamente recuperata e ampliata in modo incrementale.

Redis viene utilizzato anche per altri scopi: grazie all’elevata velocità di accesso, un database Redis è perfettamente adatto, ad esempio, ai servizi di messaggistica o alle chat room. Le nuove registrazioni possono essere visualizzate in tempo reale. Anche gli elenchi che devono essere modificati con breve preavviso vengono implementati con Redis.

Consiglio

Redis vi ha convinti e volete usarlo per il vostro progetto? Nel nostro semplice Tutorial su Redis potrete scoprire come funziona.

Vantaggi e svantaggi di Redis

Redis è sempre una buona scelta quando semplici dati devono essere disponibili rapidamente. La duplicazione costante dei dati aumenta addirittura la velocità di lettura: i dati possono essere recuperati da diverse istanze. Anche la scalatura è molto efficace, sia orizzontalmente, sia verticalmente. Se la memoria del server Redis non è sufficiente, il software ha una gestione della memoria virtuale integrata che memorizza i dati sul disco rigido. Redis è scritto in C, ma esistono client per quasi tutti i linguaggi di programmazione.

Tuttavia, se si lavora con dati complessi che richiedono query altrettanto consistenti, Redis non è la scelta più indicata. I dati all’interno di un key-value store sono accessibili solo tramite chiavi. Inoltre, così come altri in-memory database, Redis richiede una quantità di memoria estremamente grande, che può essere costosa. Bisogna anche considerare di mettere a disposizione più memoria di quella che i dati occupano effettivamente.

Fatto

Quando è necessario scrivere e recuperare dati rapidamente, Redis offre una buona alternativa ai classici database relazionali. Tuttavia, se non avete bisogno di velocità e cercate un database per compiti più complessi, è meglio ricorrere al metodo tradizionale.