Redis (che sta per REmote DIctionary Server) (link esterno a IBM) è un archivio di chiavi/valori NoSQL open source e in memoria utilizzato principalmente come cache delle applicazioni o database a risposta rapida. Poiché archivia i dati in memoria, invece che su un disco o un'unità SSD (solid-state drive), Redis offre velocità, affidabilità e prestazioni senza paragoni.
Quando un'applicazione si basa su origini dati esterne, la latenza e la velocità effettiva di tali origini possono creare un collo di bottiglia delle prestazioni, in particolare se il traffico aumenta o se viene eseguita la scalabilità dell'applicazione. In questi casi, un modo per migliorare le prestazioni è quello di memorizzare e manipolare i dati in memoria, fisicamente più vicini all'applicazione. Redis è progettato per questa attività: tutti i dati vengono archiviati in memoria, fornendo le prestazioni più rapide possibili durante la lettura o la scrittura dei dati, e offre funzionalità di replica integrate che consentono di posizionare i dati fisicamente più vicini all'utente per la latenza più bassa.
Altre caratteristiche di Redis degne di nota comprendono il supporto per strutture di dati multiple, script Lua integrati, più livelli di persistenza su disco e alta disponibilità.
Redis si distingue dagli archivi dati NoSQL "tradizionali" come componente ausiliario progettato in modo specifico per migliorare le prestazioni delle applicazioni. Di seguito sono riportate alcune funzionalità distintive di Redis:
Ancora una volta, a differenza di database NoSQL come MongoDB e PostreSQL, Redis archivia i dati nella memoria principale del server anziché su dischi fissi e unità SSD. Questo comporta tempi di risposta notevolmente più rapidi durante l'esecuzione di operazioni di lettura e scrittura. Inoltre, aiuta ad assicurare l'alta disponibilità (insieme a Redis Sentinel - vedi di seguito) e la scalabilità dei servizi dei carichi di lavoro delle applicazioni.
Redis può accodare le attività la cui elaborazione può richiedere ai client web più tempo del solito. L'accodamento delle attività a più processi è comune in molte delle odierne applicazioni basate sul web e Redis semplifica l'implementazione di processi Python automatizzati eseguiti in background rispetto ai cicli di richiesta/risposta.
Sebbene tecnicamente sia un archivio di chiavi/valori, Redis è un server di struttura dati effettivo che supporta più strutture e tipi di dati, tra cui:
Redis offre funzionalità di integrazione dei client native per aiutare gli sviluppatori a manipolare e interagire con i propri dati. Attualmente nella libreria di client Redis sono disponibili più di 100 client open source differenti e gli sviluppatori possono facilmente aggiungere nuove integrazioni per supportare ulteriori funzioni e linguaggi di programmazione.
Alcune delle funzioni più importanti o degne di nota di Redis comprendono:
Redis Sentinel (link esterno a IBM) è un sistema distribuito autonomo che aiuta gli sviluppatori a calibrare le proprie istanze in modo che siano altamente disponibili per i client. Sentinel utilizza una serie di processi di monitoraggio, notifiche e failover automatici per informare gli utenti in caso di problemi relativi alle istanze master e slave, riconfigurando automaticamente nuove connessioni per le applicazioni quando necessario.
Redis Cluster (link esterno a IBM) è un'implementazione distribuita di Redis che suddivide automaticamente i set di dati tra più nodi. Questo supporta prestazioni e scalabilità più elevate delle implementazioni di database, garantendo operazioni ininterrotte nel caso in cui i sottoinsiemi del nodo non siano in grado di comunicare con il resto del cluster.
Perché Redis supporta l' uso di comandi di pubblicazione e sottoscrizione (Pub/Sub) (link esterno a IBM), gli utenti possono progettare servizi di messaggistica e chat ad alte prestazioni in tutte le proprie applicazioni e in tutti i propri servizi. Ciò include la capacità di utilizzare strutture di dati elenco per eseguire operazioni atomiche e funzionalità di blocco.
Redis utilizza lo storage su disco persistente (link esterno a di IBM) progettato per resistere alle interruzioni dei processi e ai colli di bottiglia della rete. Redis può rendere persistenti i set di dati acquisendo istantanee periodiche dei dati e aggiungendo le modifiche man mano che diventano disponibili. Redis può quindi essere configurato per generare questi backup di database on-demand o a intervalli automatici per garantire l'integrità e la durabilità del database.
Redis e Memcached sono entrambi archivi dati in memoria open source ma differiscono per quanto riguarda le funzioni e i vantaggi offerti. Memcached è spesso la scelta preferita per applicazioni semplici che richiedono minori risorse di memoria, ma presenta dei limiti quando archivia i dati nel loro formato serializzato. L'utilizzo delle strutture di dati da parte di Redis offre una potenza molto superiore quando si utilizzano set di dati di grandi dimensioni e maggiore capacità di ottimizzare il contenuto della cache e preservare una maggiore efficienza in scenari applicativi specifici.
Mentre Redis è un archivio di database in memoria, MongoDB è noto come archivio di documenti su disco. Sebbene entrambe le soluzioni siano create per scopi diversi, spesso vengono utilizzate insieme per aumentare al massimo la velocità e l'efficienza di un database NoSQL. Grazie alla sua capacità di memorizzazione nella cache, Redis può individuare i dati richiesti in modo estremamente rapido, fungendo da buffer di acquisizione che rende MongoDB più efficiente e in grado di gestire frequenze più elevate di aggiornamenti dei documenti quasi in tempo reale. Con le capacità di archiviazione di notevoli quantità di dati offerte da MongoDB e le capacità di elaborazione rapida fornite da Redis, l'abbinamento offre una potente soluzione di gestione dei database per una varietà di casi di utilizzo.
Ecco alcuni comuni casi di utilizzo da cui le aziende traggono vantaggio quando utilizzano Redis:
Iniziare a utilizzare Redis è un'operazione abbastanza semplice, specialmente se si utilizza RDM (Redis Desktop Manager) (link esterno a IBM). E poiché Redis e RDM sono open source, le community di sviluppo attive sono sempre al lavoro per migliorare la propria efficienza operativa e potenziare continuamente le integrazioni e gli strumenti supportati.
Per ulteriori informazioni sull'installazione e sull'impostazione di Redis, segui le istruzioni di impostazione nella community (link esterno a IBM).
Un archivio di valori chiave in memoria open source progettato per lo stack di applicazioni moderno.
Scopri come scegliere il database giusto per la tua applicazione nativa del cloud
Tutte le informazioni necessarie su NoSQL, un tipo di design di database che offre più flessibilità rispetto ai database tradizionali.
Questa guida esplora le funzioni e i vantaggi dell'utilizzo di MongoDB come parte della tua soluzione di gestione del database aziendale.