Home

topics

Redis

Che cos'è Redis?
Esplora la soluzione Redis di IBM Iscriviti per ricevere gli aggiornamenti sull'AI
Illustrazione con collage di pittogrammi di nuvole, grafico a torta, pittogrammi grafici
Che cos'è 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à.

Come scegliere il giusto foundation model di AI

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.

Contenuti correlati Registrati per ricevere l'ebook su Presto
Funzionalità di differenziazione

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:

Sessioni di cache 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.

Code Redis

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.

Tipi di dati Redis

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:

  • Elementi stringa unici e non ordinati

  • Dati binary-safe

  • HyperLogLogs

  • Array bit

  • Hash

  • Elenchi

Gestione dei clienti Redis

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.

Funzioni

Alcune delle funzioni più importanti o degne di nota di Redis includono:

Redis Sentinel

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

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.

Redis Pub/Sub

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.

Persistenza di Redis

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.

Confronto fra Redis e Memcached

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.

Confronto fra Redis e MongoDB

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.

Casi d’uso

Ecco alcuni casi d'uso comuni da cui le aziende traggono vantaggio quando lavorano con Redis:

  • Analisi in tempo reale: poiché Redis è in grado di elaborare i dati con latenza inferiore al millisecondo, è ideale per analytics in tempo reale, campagne pubblicitarie online e processi di machine learning basati sull'AI.

  • Applicazioni basate sulla posizione: Redis semplifica lo sviluppo di applicazioni e servizi basati sulla posizione fornendo indicizzazione, set e operazioni geospaziali. Utilizzando set ordinati, Redis riesce a ridurre la lunga ricerca e l'ordinamento dei dati sulla posizione utilizzando anche un'implementazione intelligente del geo-hashing.

  • Caching per i database: Redis è in grado di gestire grandi quantità di dati in tempo reale sfruttando le sue capacità di archiviazione dati in-memory per supportare costrutti di database altamente reattivi. La memorizzazione nella cache con Redis consente di ridurre gli accessi al database, riducendo di conseguenza la quantità di traffico e le istanze richieste. Utilizzando Redis per il caching, i team di sviluppo possono migliorare drasticamente il throughput delle applicazioni, ottenendo una latenza inferiore al millisecondo. E poiché il livello di caching di Redis può scalare in modo rapido ed economico, le organizzazioni riescono a sviluppare queste applicazioni altamente reattive riducendo al contempo le spese complessive.
Installazione di 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).

Soluzioni correlate
IBM® Cloud Databases for Redis

Un archivio open source, in memoria di enorme valore, progettato per lo stack di applicazioni moderno.

Esplora IBM Cloud Databases for Redis
Come scegliere un database su IBM Cloud

Scopri come scegliere il database giusto per la tua applicazione cloud-native.

Cos'è un database NoSQL?

Leggi tutto quello che c'è da sapere su NoSQL, un tipo di progettazione di database che offre maggiore flessibilità rispetto ai database tradizionali.

Che cos'è MongoDB?

Esplora le caratteristiche e i vantaggi di utilizzare di MongoDB come parte della tua soluzione di gestione dei database aziendali.

Fai il passo successivo

IBM Cloud Databases for Redis è una soluzione completamente gestita per l'implementazione delle potenti funzionalità di caching in-memory di Redis nel tuo stack di applicazioni moderno. Databases for Redis è una soluzione pensata per le aziende che offre una scalabilità indipendente di disco e RAM, garantendo la flessibilità necessaria a soddisfare le crescenti esigenze in termini di risorse delle applicazioni più innovative.

Esplora Cloud Databases for Redis