Che cos'è Redis?

Un uomo, seduto accanto a una grande finestra in una biblioteca moderna, lavora al suo laptop.

Che cos'è Redis?

Redis (REmote DIctionary Server) è un data store NoSQL chiave/valore open source e in-memory utilizzato principalmente come cache di applicazioni o database a risposta rapida.

Redis conserva i dati in memoria, anziché su un disco o su un solid-state drive (SSD), contribuendo a fornire velocità, affidabilità e prestazioni senza pari.

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 nel memorizzare e modificare i dati in memoria, fisicamente più vicino all'applicazione. Redis è progettato proprio per questo: conserva 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à.

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

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 conserva i dati nella memoria principale del server anziché su dischi rigidi e solid-state drive. Ciò si traduce in tempi di risposta notevolmente più rapidi durante l'esecuzione di operazioni di lettura e scrittura. Aiuta inoltre 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.

Mixture of Experts | 12 dicembre, episodio 85

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Funzionalità

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

Redis Sentinel

Redis Sentinel è 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 è 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), 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 su disco persistente, progettato per sopravvivere alle interruzioni di processo 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 è un 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:

  • Real-time analytics: poiché Redis è in grado di elaborare i dati con latenza inferiore al millisecondo, è ideale per real-time analytics, campagne pubblicitarie online e processi guidati dall'intelligenza artificiale (AI) o dal machine learning.

  • 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 semplice, soprattutto se si utilizza Redis Desktop Manager (RDM). 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 maggiori informazioni sull'installazione e la configurazione di Redis, segui le istruzioni di configurazione nella community.

Soluzioni correlate
Software e soluzioni per database

Usa le soluzioni di database di IBM per soddisfare varie esigenze di workload nell'hybrid cloud.

Esplora le soluzioni di database
Database cloud-native con IBM Db2

Esplora IBM DB2, un database relazionale che offre prestazioni, scalabilità e affidabilità elevate per l'archiviazione e la gestione di dati strutturati. È disponibile come SaaS su IBM Cloud o in self-hosting.

Scopri Db2
Servizi di consulenza per dati e analytics

Sblocca il valore dei dati enterprise con IBM Consulting, creando un'organizzazione basata su insight in grado di generare vantaggi aziendali.

Esplora i servizi di analytics
Fasi successive

Usa le soluzioni di database di IBM per soddisfare varie esigenze di workload nel cloud ibrido.

Esplora le soluzioni di database Scopri IBM Db2