Ciao, e benvenuto nella prima puntata della quarantunesima stagione di questo podcast. La scorsa stagione, chiudendo il lungo viaggio nella sala macchine del web, ti avevo promesso che saremmo tornati più vicino al codice, e alle persone che lo scrivono. Eccoci. Oggi apriamo una stagione su uno strumento che vive nel cuore di quasi ogni applicazione moderna, e che con ogni probabilità hai già usato o incontrato: Redis. È veloce, è versatile, ed è amatissimo da chi costruisce il backend, la parte nascosta delle applicazioni. Oggi capiamo cos'è, e soprattutto il segreto della sua velocità sorprendente.
Partiamo dal collocarlo, perché è cugino di qualcosa che già conosciamo. Ricordi la stagione sulle basi di dati? Erano il luogo dove un'applicazione conserva i suoi dati in modo ordinato e permanente. Redis è, in un certo senso, un altro posto dove conservare dati. Ma ha una differenza radicale, una sola, che cambia tutto il resto. Le basi di dati classiche conservano i dati sul disco, la memoria permanente della macchina. Redis, invece, li tiene nella memoria di lavoro, quella che i tecnici chiamano memoria e basta, la memoria viva e velocissima in cui la macchina tiene ciò che sta usando in questo istante. Non sul disco, ma nella memoria. Ed è tutto qui il suo superpotere.
Voglio farti capire bene la differenza tra disco e memoria, perché è la chiave di tutto. Immagina il disco come un enorme magazzino: vastissimo, permanente, conserva tutto anche a luci spente, ma per prendere qualcosa devi camminare fin laggiù, cercarlo tra gli scaffali, e tornare. È capiente, ma lento. La memoria di lavoro, invece, è come la scrivania proprio davanti a te: piccola, e ciò che ci appoggi sparisce quando spegni, ma tutto ciò che c'è sopra lo raggiungi in un istante, allungando la mano. Le basi di dati classiche vivono nel magazzino: durature, ma più lente. Redis vive sulla scrivania: fugace, ma immediato.
Ed ecco perché Redis è così fulmineo, che voglio farti sentire. Prendere un dato dalla memoria, dalla scrivania davanti a te, è enormemente più rapido che andarlo a cercare sul disco, nel magazzino in fondo. Stiamo parlando di una differenza abissale di velocità: la memoria risponde in una frazione infinitesima del tempo che serve al disco. Ecco perché Redis può restituire una risposta quasi istantaneamente, migliaia e migliaia di volte al secondo, senza affaticarsi. Tenere i dati sulla scrivania invece che nel magazzino: è una scelta semplice a dirsi, ma è la ragione per cui Redis è diventato la spina dorsale della velocità di tanto web moderno.
Voglio aggiungere una seconda ragione della sua velocità, perché ci riporta a una lezione cara. Non è solo la memoria a renderlo veloce: è anche una scelta di semplicità sorprendente, che approfondiremo. Redis fa una cosa alla volta, in ordine, senza ingarbugliarsi in mille operazioni simultanee. Verrebbe da pensare che fare una cosa alla volta sia lento; e invece, siccome ogni operazione è fulminea, la fila scorre velocissima, e questa semplicità gli evita un intero mondo di complicazioni. È lo stesso principio della scorsa stagione: la semplicità non è una debolezza, è una forza. Redis è veloce perché vive nella memoria, e perché resta semplice.
Voglio anticiparti dove andremo, perché la ricchezza di Redis è tutta nei suoi mestieri. Questa velocità non è fine a se stessa: rende Redis capace di fare, benissimo, una dozzina di lavori diversi nel cuore delle applicazioni. Fa da memoria di scorta per alleggerire le basi di dati. Ricorda chi sei mentre navighi un sito. Tiene classifiche aggiornate in tempo reale. Fa parlare tra loro le parti di un sistema, e smista il lavoro in code. Vedremo tutti questi mestieri, uno per uno. Per questo Redis è spesso chiamato il coltellino svizzero del backend: un solo strumento, piccolo e veloce, che fa silenziosamente tante cose diverse.
Voglio chiudere con una nota che ci riguarda da vicino, e che dico con un pizzico di orgoglio. Redis, uno degli strumenti più usati al mondo, il pezzo di infrastruttura invisibile che sta dietro a una parte enorme del web che usi ogni giorno, è nato dalla mente di uno sviluppatore italiano, Salvatore Sanfilippo. Ci torneremo, perché la sua storia recente intreccia temi che questo podcast ama. Ma intanto tienilo a mente: mentre attraversiamo il ponte verso il codice e chi lo scrive, è bello scoprire che chi scrive queste cose, a volte, è uno di noi.
Per oggi ci fermiamo qui. Abbiamo aperto la stagione su Redis, uno strumento velocissimo e versatile nel cuore delle applicazioni. La sua differenza radicale rispetto alle basi di dati classiche è che tiene i dati nella memoria di lavoro, non sul disco: come tenerli sulla scrivania davanti a te invece che in un magazzino lontano, e per questo li raggiunge in un istante. È veloce per la memoria, e per una scelta di semplicità che ritroveremo. Questa velocità gli permette una dozzina di mestieri, che vedremo, tanto da meritargli il nome di coltellino svizzero del backend. Ed è nato, con un po' d'orgoglio, dalla mente di uno sviluppatore italiano. Nella prossima puntata vediamo come organizza i dati: il modello chiave-valore. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.