Una guida completa a Redis per i data scientist
 

Un database online è un database a cui è possibile accedere facilmente a livello locale utilizzando una rete locale o Internet. Invece di archiviare i dati direttamente sul desktop e sull’archiviazione collegata, i database online sono ospitati su siti Web e attraverso il modello cloud e quindi forniscono Software as a Service (SaaS) sul browser Web. Queste applicazioni basate sul Web possono essere gratuite o richiedere un pagamento, solitamente sotto forma di abbonamenti mensili e annuali. Paghi per quello che usi; pertanto, la quantità di spazio del server richiesta può essere modificata di conseguenza in base alle proprie esigenze.

Anche la seccatura di installare un intero software viene eliminata, poiché tutto viene mantenuto sul cloud. Le informazioni sono accessibili da quasi tutti i dispositivi in ​​qualsiasi momento. Poiché tutto è archiviato in un cloud, ciò significa non essere bloccato su un solo computer. Finché l’accesso è concesso, puoi tecnicamente ottenere una sospensione dei dati da qualsiasi dispositivo compatibile. Tali database sono inoltre dotati di supporto tecnico interno, che serve 24 × 7 e 365 giorni. Alcuni esempi di tali database sono Oracle Database , IBM Db2 e il famigerato Amazon DynamoDB .

Compila il sondaggio: utilizzo della scienza comportamentale per analizzare il comportamento dei clienti

Cos’è Redis?
Redis, noto anche come Remote Dictionary Server, è un archivio dati chiave-valore super veloce, open source e in memoria creato per essere utilizzato come database, gestore della cache, broker di messaggi e coda. Tutti i dati Redis risiedono in memoria, contraddicendo altri database che archiviano dati su disco o SSD. Eliminando la necessità di accedere ai dischi, gli archivi di dati in memoria come Redis evitano ritardi nei tempi di risposta e accedono a dati di microsecondi. Ciò significa anche che mentre Redis supporta stringhe mappate basate su valore-chiave per archiviare e recuperare dati parallelamente al modello di dati supportato nei tipi tradizionali di database, supporta anche altre strutture dati complesse come elenchi, set, ecc.

Alcune delle caratteristiche principali di Redis sono strutture dati versatili, alta disponibilità, geospaziale, script Lua, gestione delle transazioni, persistenza su disco e supporto cluster, che semplificano l’insegnamento con app su scala Internet in tempo reale. Redis è un tipo di database comunemente indicato come No SQL o Non relazionale. Pertanto in Redis, non ci sono tabelle e nessun modo definito dal database di mettere in relazione i dati in Redis con altri dati. Utilizzando Redis invece di un comune database relazionale o di altro tipo principalmente su disco, puoi evitare di scrivere dati temporanei non necessari ed evitare di dover scansionare ed eliminare i dati temporanei, migliorando quindi le prestazioni richieste.

Come funziona Redis?
Redis funziona mappando le chiavi ai valori con una sorta di modello di dati predefinito. Utilizza anche un metodo noto come Sharding, attraverso il quale si partizionano i dati in parti diverse. Partiziona i dati in base agli ID incorporati nelle chiavi, in base all’hash delle chiavi o a una combinazione dei due. Partizionando i dati, è possibile archiviare e recuperare i dati da più macchine, consentendo un ridimensionamento lineare delle prestazioni per determinati domini problematici. 

Anche se Redis funziona molto bene nelle circostanze più incerte grazie al suo design in-memory, ci sono situazioni in cui potrebbe essere necessario che Redis elabori più query di lettura di quante un singolo server Redis possa gestire. Pertanto, Redis supporta la replica dell’istanza del server master/slave per supportare tassi più elevati di prestazioni di lettura e gestione dei guasti del server su cui è in esecuzione Redis.

Redis supporta la replica delle istanze del server master/slave, in cui gli slave sono connessi al master e ricevono una copia iniziale del database completo. Quindi, mentre il master scrive i dati, vengono inviati anche a tutti gli slave collegati e vengono aggiornati in tempo reale. Con gli slave continuamente aggiornati, i client possono connettersi a qualsiasi slave per leggere i dati in caso di crash o problemi di connettività con il server master. Per ridurre il carico, può anche essere combinato con un altro database.

Tipi di dati supportati
Alcuni dei tipi di dati supportati in Redis sono:

Stringhe: Permette di operare sull’intera stringa, parti, incrementare/decrementare i numeri interi e float
Elenchi: consente di spingere o estrarre elementi da entrambe le estremità, leggere elementi singoli e multipli, trovare e rimuovere elementi utilizzando il loro valore
Insiemi e insiemi ordinati: consente di aggiungere, recuperare o rimuovere elementi singoli e casuali, controllare l’appartenenza, intersecare, creare unioni e differenze
Hash: aggiungi, recupera o rimuovi elementi o recupera l’intero hash
Bitmap
Iper log
Indici geospaziali
Quali lingue supporta Redis?
Redis semplifica il codice consentendoci di scrivere meno righe di codice da archiviare, accedere e utilizzare nei dati per le applicazioni create. È possibile utilizzare più strutture dati supportate per archiviare dati nell’archivio dati con poche righe di codice e include opzioni per manipolare e interagire con i dati. Oltre un centinaio di client open source sono disponibili per gli sviluppatori che utilizzano Redis. 

Le lingue supportate includono:

Giava
Pitone
PHP
C, C++ e C#
Javascript
Nodo.js
Rubino
R
Vai e molti altri.
Elevata disponibilità e scalabilità di Redis
Redis offre una replica primaria dell’architettura in un nodo primario o una topologia cluster. Ciò consente all’utente di creare soluzioni ad alta disponibilità e di mantenere prestazioni e affidabilità costanti. Inoltre, sono disponibili un sacco di opzioni per regolare la dimensione del cluster, sia per l’upscaling che per l’aumento o la riduzione. Ciò consente all’utente la flessibilità di far crescere il cluster in base alle sue esigenze e ai suoi usi.

Memorizzazione nella cache utilizzando Redis
Redis è sempre un’opzione migliore per implementare una cache in memoria ad alta disponibilità per ridurre la latenza di accesso ai dati e aumentare il throughput. Questo perché Redis può servire gli elementi di dati richiesti di frequente in pochi millisecondi. La memorizzazione nella cache è il processo di memorizzazione di copie simili di file in una posizione di archiviazione temporanea a cui è possibile accedere istantaneamente. Tecnicamente, una cache è qualsiasi posizione di archiviazione temporanea per copie di file o dati, ma il termine viene spesso utilizzato in riferimento alle tecnologie Internet. Le query del database consentono la memorizzazione nella cache, la memorizzazione nella cache della sessione persistente, la memorizzazione nella cache delle pagine Web e la memorizzazione nella cache di oggetti richiesti di frequente come immagini, file e metadati. Sono quindi gli esempi popolari di memorizzazione nella cache con Redis. Con la capacità di designare per quanto tempo conservare i dati e quali dati eliminare per primi,

Scadenza ed eliminazione dei dati tramite Redis
Le strutture dati in Redis possono essere etichettate con un Time to Live, impostato di conseguenza in secondi, dopodiché verranno rimosse dal database. È disponibile una serie di criteri di sfratto configurabili tra cui scegliere. Facendo uso di Time to Live, i dati contrassegnati impermanenti possono essere considerati prima di altri dati che non hanno Time to Live, permettendoci di creare una gerarchia a livelli di oggetti di memoria. L’oggetto usato meno di recente o meno frequentemente avrebbe molto più senso essere sfrattato.

Caratteristiche geospaziali di Redis
Redis è ricco di strutture di dati di indice geospaziale e comandi da utilizzare. Queste strutture di dati e operatori integrati in memoria possono aiutare a gestire i dati geospaziali in tempo reale su scala e velocità. Ad esempio, vengono memorizzate le coordinate di latitudine e longitudine e gli utenti possono calcolare la distanza tra gli oggetti o ricercare oggetti entro un determinato raggio di un punto. L’implementazione di questi comandi restituisce valori in più formati come piedi, chilometri, ecc.

La velocità di Redis consente di aggiornare rapidamente questi punti dati. Quindi, può essere implementato nelle applicazioni di ridesharing per connettersi con i conducenti nelle vicinanze e fornire aggiornamenti in tempo reale mentre viaggiano quando viene utilizzato correttamente.

Alcuni casi d’uso di Redis
Poiché le moderne applicazioni basate sui dati richiedono l’apprendimento automatico per elaborare rapidamente enormi quantità di dati in rapido movimento, Redis può essere un salvatore per tale elaborazione ad alta velocità. La capacità di elaborare, costruire, addestrare e distribuire modelli di machine learning attraverso elaborazioni più veloci rende Redis la scelta ideale per tali casi d’uso. Redis può essere utilizzato anche con soluzioni steaming come Apache Kafka e Amazon Kinesis per acquisire ed elaborare dati in tempo reale con bassa latenza. Può anche essere utilizzato per l’analisi dei social media, il targeting degli annunci, la personalizzazione e l’IoT.

Utilizzo di Redis
A scopo dimostrativo, ho implementato il seguente codice sul sito Web di Redis tramite l’interfaccia utente del tutorial. Puoi implementare il seguente codice sul tuo sistema installando Redis-CLI. È possibile scaricare la CLI tramite il collegamento qui .

Impostazione di una chiave
Ad esempio, imposteremo prima un nome di server come “victor” con la chiave come “Hello World”,

> SET Victor “CIAO MONDO”
Otterremo il seguente output come Ok se la chiave è impostata,

OK

Ottenere la chiave
Per recuperare la chiave set, utilizzeremo il seguente comando.

> GET victor

“HELLO WORLD”

Eliminazione della chiave
Per eliminare la nostra chiave creata, possiamo usare il seguente comando.

> DEL victor

(integer) 1 #key got deleted

Convalida incrociata del risultato 

GUARDA ANCHE
ANGOLO DEGLI SVILUPPATORI
10 database più utilizzati dagli sviluppatori nel 2020
 

> GET victor

(nil)

Quindi possiamo confermare che la nostra chiave è stata completamente rimossa.

Impostazione di una chiave con Time to Live
Possiamo anche impostare chiavi con un tempo di scadenza, il tempo sarà impostato in secondi e la chiave verrà rimossa dal server dopo aver superato il tempo impostato.

> SETEX victor 40 “Ho detto, Ciao mondo!”
#tasto impostato con 40 secondi come limite di tempo
OK

Controllo del tempo per vivere 
Puoi anche controllare il tempo rimanente dal tempo impostato alla scadenza.

> TTL victor

(integer) 36

Rinominare la nostra chiave
Le chiavi possono essere rinominate utilizzando il seguente comando.

> RINOMINA la barra del  vincitore #rinomina il vincitore come barra
OK
Sciacquare la chiave
Flushing tutto salvato finora.

> flushall

OK #just got flushed

Note finali
Attraverso questo articolo, abbiamo cercato di sapere cos’è Redis e di cosa è capace. Abbiamo anche cercato di esplorare i suoi casi d’uso, eseguire i comandi di base del database Redis e verificarne le funzionalità. Redis offre letture e scritture altamente performanti ed efficienti tramite le sue ottimizzazioni. Pertanto, consiglierei di esplorare ulteriormente il database Redis e implementarlo per le sue immense capacità.

Di ihal