Redis sta per Remote Dictionary Server, è un database NoSQL scritto in C open source e formattato come valore-chiave (inmemory). Redis sta per “dizionario remoto“. Mantiene i dati in formato coppia chiave-valore e l’accesso ai dati è molto veloce. Pertanto, viene ampiamente utilizzato per le operazioni di cache. Oltre a funzionare come inmemory, Redis, che ha la caratteristica di archiviare i dati su disco, impedisce la perdita di dati. Lo scopo di Redis è di memorizzare nella cache è alleggerire il carico dell’applicazione in background o del database e raggiungere i dati nel modo più rapido ed economico. Redis è determinante nel fare proprio questo, consentendo di recuperare gli elementi in meno di un millisecondo.
Se pensiamo a Redis come a un armadio di archiviazione dati, Redis accetta ogni cassetto dell’armadio come 1 hashslot e Redis memorizza le chiavi in questa struttura chiamata hashslot. Avere 16384 hashslot in Redis non significa che possono essere archiviate solo 16384 chiavi. A seconda della struttura e delle dimensioni del sistema, in ogni slot possono essere archiviate migliaia o decine di migliaia di chiavi. Quindi, come fa Redis a decidere quali dati archiviare in quale slot? Redis calcola per ogni chiave che memorizzerai con l’algoritmo Hash CRC16 e la modalità di questo valore viene presa in base al numero 16384. Quindi, in base al risultato, viene determinato lo slot della chiave da memorizzare.
Senza utilizzare una cache, l’applicazione interagisce con l’origine dati per ogni richiesta. Al contrario, quando si utilizza una cache è necessaria solo una singola richiesta all’origine dati esterna, con successivo accesso servito dalla cache.
Quando un’applicazione si basa su origini dati esterne, la latenza e il throughput di tali origini possono creare un collo di bottiglia delle prestazioni. Un modo per migliorare le prestazioni è archiviare e manipolare i dati in memoria, fisicamente più vicino all’applicazione.
È qui che entra in gioco Redis. Redis è progettato per archiviare tutti i dati in memoria, offrendo le prestazioni più veloci possibili durante la lettura o la scrittura dei dati. Redis risiede nella memoria principale del server. In questo modo, può supportare più transazioni e tempi di risposta più rapidi. Offre prestazioni veloci con operazioni di lettura o scrittura medie che richiedono meno di un millisecondo e supporto per milioni di operazioni al secondo.