Home
topics
Redis
Redis (REmote DIctionary Server) è un archivio NoSQL chiave/valore open source e in-memory utilizzato principalmente come cache di applicazioni o database a risposta rapida.
Redis (link esterno a ibm.com) archivia i dati in memoria anziché su un disco o su un'unità SSD (solid-state drive), fornendo velocità, affidabilità e prestazioni senza eguali.
Quando un'applicazione si basa su fonti di dati esterne, la latenza e il throughput di tali fonti possono creare un collo di bottiglia nelle prestazioni, soprattutto se il traffico o la scalabilità dell'applicazione aumentano. In questi casi, un modo per migliorare le prestazioni consiste nell'archiviare e modificare i dati in memoria, fisicamente più vicino all'applicazione. Redis è progettato proprio per questo: archivia tutti i dati in memoria, offrendo le prestazioni più veloci possibili durante la lettura o la scrittura dei dati, e offre funzionalità di replica integrate che consentono di posizionare i dati fisicamente più vicino all'utente per la latenza più bassa.
Altre caratteristiche di Redis degne di nota includono il supporto per più strutture di dati, lo scripting Lua integrato, più livelli di persistenza su disco e l'elevata disponibilità.
Utilizza questo framework di selezione del modello per scegliere il modello più appropriato bilanciando i requisiti di prestazioni con costi, rischi ed esigenze di implementazione.
Redis si distingue dai data store NoSQL "tradizionali" come componente ausiliario appositamente progettato per migliorare le prestazioni dell'applicazione. Ecco alcune funzionalità di differenziazione di Redis:
Anche in questo caso, a differenza di database NoSQL come MongoDB e PostreSQL, Redis archivia i dati nella memoria principale del server anziché su dischi rigidi e solid-state drive. Ciò comporta tempi di risposta significativamente più rapidi durante l'esecuzione di operazioni di lettura e scrittura, e aiuta a garantire l'elevata disponibilità (insieme a Redis Sentinel) e la scalabilità dei servizi e dei workload delle applicazioni.
Redis può mettere in coda le attività che possono richiedere ai client web più tempo del solito. La messa in coda di attività multiprocesso è comune in molte delle applicazioni basate sul web di oggi, e Redis semplifica l'implementazione di processi automatizzati scritti in Python che vengono eseguiti in background di cicli di richiesta/risposta.
Sebbene tecnicamente si tratti di un archivio chiave/valore, Redis è un vero e proprio server di struttura di dati che supporta più tipi di dati e strutture, tra cui:
Redis offre funzionalità native di integrazione client per aiutare gli sviluppatori a manipolare e interagire con i propri dati. Attualmente ci sono più di 100 diversi client open source disponibili nella libreria client di, Redis e gli sviluppatori possono aggiungere facilmente nuove integrazioni per supportare altre funzionalità e altri linguaggi di programmazione.
Alcune delle funzioni più importanti o degne di nota di Redis includono:
Redis Sentinel (link esterno a ibm.com) è un sistema distribuito autonomo che aiuta gli sviluppatori a calibrare le proprie istanze in modo che siano altamente disponibili per i clienti. Sentinel utilizza una serie di processi di monitoraggio, notifiche e failover automatici per informare gli utenti quando c'è qualcosa che non va nelle istanze master e slave, riconfigurando automaticamente le nuove connessioni per le applicazioni quando necessario.
Redis Cluster (link esterno a ibm.com) è un'implementazione distribuita di Redis che divide automaticamente i set di dati tra più nodi. In questo modo, supporta prestazioni più elevate e la scalabilità delle distribuzioni di database, garantendo al contempo operazioni continue nel caso in cui i sottoinsiemi di nodi non siano in grado di comunicare con il resto del cluster.
Poiché Redis supporta l'uso dei comandi publish/subscribe (Pub/Sub) (link esterno a ibm.com), gli utenti possono progettare servizi di chat e messaggistica ad alte prestazioni in tutte le loro applicazioni e servizi. Ciò include la possibilità di utilizzare strutture di dati di elenco per eseguire operazioni atomiche e funzionalità di blocco.
Redis utilizza uno storage persistente su disco (link esterno a ibm.com) progettato per sopravvivere alle interruzioni dei processi e ai colli di bottiglia della rete. Redis può rendere persistenti i set di dati eseguendo regolarmente snapshot e aggiungendovi le modifiche non appena diventano disponibili. Può quindi essere configurato per generare questi backup del database su richiesta o a intervalli automatici per garantire la durabilità e l'integrità del database.
Sia Redis che Memcached sono storage di dati in-memory e open source, ma differiscono per quanto riguarda i vantaggi e le funzionalità. Memcached è spesso la scelta preferita per applicazioni semplici che richiedono meno risorse di memoria, ma è limitato quando si archiviano i dati in formato serializzato. L'uso delle strutture di dati da parte di Redis offre molta più potenza quando si lavora con set di dati di grandi dimensioni e una maggiore capacità di ottimizzare i contenuti della cache e mantenere una maggiore efficienza in scenari applicativi specifici.
Mentre Redis è un archivio di database in-memory, MongoDB è noto come archivio di documenti su disco. Sebbene le soluzioni siano create per scopi diversi, vengono spesso utilizzate insieme per massimizzare la velocità e l'efficienza di un database NoSQL. Grazie alla sua capacità di memorizzazione nella cache, Redis è in grado di individuare i dati richiesti con estrema rapidità fungendo da buffer di ingestione, il che rende MongoDB più efficiente e capace di gestire frequenze di aggiornamenti dei documenti maggiori e quasi in tempo reale. Grazie alla capacità di MongoDB di archiviare quantità significative di dati e alla capacità di Redis di elaborarli più velocemente, l'abbinamento offre una potente soluzione di gestione dei database per diversi casi d'uso.
Ecco alcuni casi d'uso comuni da cui le aziende traggono vantaggio quando lavorano con Redis:
Iniziare a usare Redis è un processo abbastanza fluido, specialmente con l'uso di Redis Desktop Manager (RDM) (link esterno a ibm.com). E poiché Redis e RDM sono open source, le comunità di sviluppo attive lavorano sempre per migliorare la loro efficienza operativa e far evolvere continuamente gli strumenti e le integrazioni supportati.
Per ulteriori informazioni sull'installazione e sulla configurazione di Redis, segui le istruzioni per l'installazione nella community (link esterno a ibm.com).
Un archivio open source, in memoria di enorme valore, progettato per lo stack di applicazioni moderno.
Scopri come scegliere il database giusto per la tua applicazione cloud-native.
Leggi tutto quello che c'è da sapere su NoSQL, un tipo di progettazione di database che offre maggiore flessibilità rispetto ai database tradizionali.
Esplora le caratteristiche e i vantaggi di utilizzare di MongoDB come parte della tua soluzione di gestione dei database aziendali.