Redis

Rapido datastore in memoria open source per l'utilizzo con database, caching, broker di messaggistica e code.

Cos'è Redis?

Redis è un datastore in memoria rapido, open source e di tipo chiave-valore per l'utilizzo con database, caching, broker di messaggistica e code. Fornisce tempi di risposta inferiori al millisecondo, consentendo milioni di richieste al secondo per applicazioni in tempo reale nei campi di videogiochi, tecnologie pubblicitarie, servizi finanziari, settore sanitario e IoT. Redis è una scelta popolare per caching, gestione di sessioni, analisi in tempo reale, geospazialità, chat/messaggistica, streaming multimediale e classifiche di videogiochi.

Come funziona Redis?

Tutti i dati Redis risiedono in-memory, a differenza dei database che memorizzano i dati su disco o SSD. Eliminando l'esigenza di accedere ai dischi, i datastore in-memory come Redis evitano i ritardi dovuti ai tempi di ricerca e sono in grado di accedere ai dati in pochi microsecondi. Redis presenta versatili strutture dei dati, elevata disponibilità, geospazialità, scripting Lua, transazioni, persistenza su disco e supporto di cluster, facilitando la creazione in tempo reale di app in scala Internet.

Amazon ElastiCache per Redis

Redis interamente gestito con crittografia, ridimensionamento dei cluster online, elevata disponibilità e conformità. Ulteriori informazioni >>

Vantaggi di Redis

Datastore in memoria

Tutti i dati di Redis si trovano nella memoria principale del server, a differenza di quanto avviene nei database come PostgreSQL, Cassandra, MongoDB e altri, che memorizzano la maggior parte dei dati su disco o su SSD. Nei database tradizionali basati su disco, i dati vengono trasferiti da e verso lo storage per ogni operazione, mentre i datastore in memoria come Redis non prevedono questa operazione. Pertanto, questo consente loro di supportare una quantità di operazioni di ordine di grandezza superiore e tempi di risposta più rapidi. Il risultato è costituito da prestazioni incredibilmente elevate con tempi medi di lettura e scrittura inferiori al millisecondo e supporto per milioni di operazioni al secondo.

Strutture dati flessibili

A differenza dei semplicistici datastore chiave-valore che offrono strutture dati limitate, Redis offre strutture dati adatte a diverse applicazioni. I tipi di dati Redis includono:

  • String (stringhe): testo o dati binari di dimensioni fino a 512 MB
  • List (elenchi): una raccolta di stringhe nell’ordine in cui erano state aggiunte
  • Set: una raccolta non ordinata di stringhe con capacità di intersezione, unione e differenza di altri tipi set
  • Sorted Set (set memorizzati): set ordinati per un valore
  • Hash: una struttura di dati per lo storage di un elenco di campi e valori
  • Bitmap: un tipo di dati che offre operazioni a livello di bit
  • HyperLogLog: una struttura di dati probabilistica per la stima di voci uniche in un dataset

Semplicità e intuitività

Redis semplifica la creazione di codice perché permette di memorizzare, visualizzare e utilizzare i dati nelle applicazioni impiegando un numero inferiore di righe. Ad esempio, se i dati di un'applicazione sono memorizzati in mappe hash e si desidera memorizzare tali dati in un datastore, è possibile utilizzare la struttura dei dati hash in Redis. Per eseguire un’attività simile su un datastore senza strutture dati hash, sarebbero necessarie molte linee di codice aggiuntive per eseguirne la conversione da un formato all'altro. Redis include strutture dati native e diverse opzioni che permettono di gestire e interagire con i dati. Per gli sviluppatori Redis sono disponibili più di cento client open source. Tra i linguaggi supportati sono presenti Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go e molti altri.

Replica e persistenza

Redis impiega un'architettura primary-replica e supporta la replica asincrona, in cui i dati vengono replicati su diversi server appositi. In questo modo è possibile ottenere migliori prestazioni in lettura (poiché le richieste vengono suddivise tra i diversi server) e ripristino in caso di interruzione del server principale. Per la persistenza, Redis supporta backup point-in-time (copia su disco del dataset Redis).

Disponibilità e scalabilità elevate

Redis offre un'architettura primary-replica in un singolo nodo principale o una topologia a cluster. In questo modo è possibile creare soluzioni dotate di elevata disponibilità e prestazioni costanti e affidabili. Le dimensioni di un cluster possono essere modificate in vari modi, secondo modelli di scalabilità orizzontale e verticale. Le risorse di un cluster potranno variare di pari passo con la domanda.

Estensibilità

Redis è un progetto open source sostenuto da una community molto attiva. Non esistono vincoli di fornitore o di tecnologia; Redis è basato su standard aperti, supporta formati di dati aperti e funziona con diversi client.

Caching

Redis è la soluzione ideale per implementare caching in memoria ad elevata disponibilità e ridurre la latenza in accesso ai dati, potenziare il throughput e alleggerire il carico da applicazioni e database relazionali o NoSQL. Il servizio è in grado di servire elementi richiesti con maggiore frequenza con tempi di risposta inferiori al millisecondo e di ricalibrare le risorse in base al carico senza dover investire in costosi back-end. Il caching di Redis è ideale in casi d'uso quali memorizzazione di risultati di query di database, sessioni persistenti, pagine Web e oggetti utilizzati di frequente, quali immagini, file e metadata.

Chat, messaggistica e code

Redis supporta la messaggistica pub/sub con criteri di ricerca e diversi tipi di strutture dati, tra cui elenchi e hash. In questo modo è in grado di offrire prestazioni elevate per chat, flussi di commenti in tempo reale, feed di social network e intercomunicazione di server. La struttura dati List di Redis semplifica l'implementazione di code semplici da gestire. List consente atomicità nelle operazioni e funzionalità di blocco, perciò può essere utilizzata per diverse applicazioni che richiedono affidabilità nella gestione di messaggi o elenchi circolari.

Classifiche per videogiochi

Redis è un servizio molto utilizzato tra gli sviluppatori di videogiochi per la creazione di classifiche in tempo reale. È sufficiente utilizzare la struttura di dati Sorted Set di Redis, che distingue gli elementi univoci mantenendo un elenco ordinato in base ai punteggi degli utenti. In questo modo, la classifica viene aggiornata simultaneamente alla variazione dei punteggi dei giocatori. Sorted Set può essere utilizzata anche per gestire dati di serie temporali utilizzando time stamp come punteggio.

Memorizzazione

Redis, in quanto datastore in memoria dotato di disponibilità e persistenza elevate, è una soluzione molto utilizzata tra gli sviluppatori a cui occorre memorizzare e gestire dati di sessione per applicazioni su Internet. Redis offre latenza nell'ordine dei millisecondi, scalabilità e resilienza, tutti elementi fondamentali per gestire dati di sessione quali profili utente, credenziali, stati di sessione e personalizzazioni specifiche per ciascun utente.

Streaming di contenuti multimediali

Redis offre un datastore in memoria rapido ideale per lo streaming in tempo reale. Il servizio può essere utilizzato per memorizzare metadati di profili utente e cronologie di visualizzazione, token e informazioni di autenticazione per milioni di utenti e file manifest con cui permettere a reti per la distribuzione di contenuti di trasmettere video a milioni di utenti contemporaneamente, su computer e dispositivi mobili.

Dati geospaziali

Redis offre operatori e strutture dati in memoria dedicati per gestire dati geospaziali reali su vasta scala e con la massima rapidità. Grazie a comandi quali GEOADD, GEODIST, GEORADIUS e GEORADIUSBYMEMBER, memorizzazione, elaborazione e analisi di dati geospaziali in Redis è semplice e veloce. Il servizio può anche essere utilizzato per aggiungere alle applicazioni caratteristiche basate sulla posizione, quali tempi di percorrenza, distanza percorsa e punti di interesse.

Machine Learning

Le moderne applicazioni basate sui dati necessitano di apprendimento automatico per automatizzare le decisioni ed elaborare in modo rapido grandi quantità di dati di vario genere e con varie frequenze di aggiornamento. In casi d'uso quali servizi finanziari, rilevamento di attività fraudolente nel settore ludico, inoltro di offerte in tempo reale per ad tech e creazione di corrispondenze in app di condivisione o appuntamenti, la possibilità di elaborare dati in tempo reale e prendere decisioni in pochi millisecondi è un fattore critico. Redis offre un datastore in memoria dotato di eccezionale velocità per creare, addestrare e distribuire modelli di apprendimento automatico in tempi ridotti.

Analisi in tempo reale

Redis può essere utilizzato con soluzioni di streaming quali Apache Kafka e Amazon Kinesis come datastore in memoria per acquisire, elaborare e analizzare dati in tempo reale con latenza inferiore al millisecondo. Si tratta di una soluzione ideale nei casi d'uso di analisi in tempo reale, ad esempio per social media, targeting di inserzioni, personalizzazione e IoT.

Supporto per diverse sintassi

Redis supporta la maggior parte delle sintassi e dei protocolli di programmazione più importanti, tra cui:

Python

Java

PHP

Servizio Redis completamente gestito in AWS

Amazon offre un servizio completamente gestito, Amazon ElastiCache per Redis, disponibile in prova senza alcun costo nell'ambito del piano gratuito di AWS. Amazon ElastiCache per Redis consente di configurare, utilizzare e dimensionare le distribuzioni Redis nel cloud con la massima semplicità. Con Amazon ElastiCache, è possibile distribuire implementazioni Redis scalabili su Internet in pochi minuti, impiegando hardware poco costoso e ridimensionabile.
Comincia a usare Amazon ElastiCache per Redis gratuitamente in tre semplici passi:
Amazon ElastiCache per Redis

Registrati

Ottieni l'accesso al piano gratuito di Amazon ElastiCache.
Apprendi le nozioni di base su Amazon ElastiCache per Redis

Impara con semplici tutorial

Esplora come creare un cluster Redis.
Inizia a usare ElastiCache per Redis

Inizia a creare

Inizia a creare con l'aiuto della Guida per l'utente.