Il tuo sito interroga il database a ogni refresh, le API rispondono in 500ms e il server inizia a gemere. Hai bisogno di un magazzino temporaneo, velocissimo, che tenga i dati caldi in RAM. Redis è la risposta. Ma installarlo e usarlo non è magia: è un processo concreto, da tecnico a tecnico. Noi, di Meteora Web, lo mettiamo in produzione per clienti di ogni dimensione. Partiamo da zero: installazione, tipi di dato, comandi essenziali. Niente teoria inutile, solo operatività.
Installazione di Redis: scegli la tua strada
Redis gira su Linux, macOS e Windows (via WSL). Noi consigliamo sempre un server Linux per produzione — stabile, performante, senza sorprese. Ecco come installarlo nei tre scenari più comuni.
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install redis-server
# Avvia il servizio e abilita all'avvio
sudo systemctl enable redis-server
sudo systemctl start redis-server
# Verifica
redis-cli ping
# Dovresti vedere: PONG
macOS (Homebrew)
brew install redis
brew services start redis
redis-cli ping
Windows (WSL o Docker)
Su Windows, usa WSL con Ubuntu oppure Docker:
docker run --name redis -p 6379:6379 -d redis
Una volta installato, connettiti con redis-cli. È il tuo terminale per esplorare Redis.
I data types di Redis: non solo stringhe
Redis non è un semplice key-value store. Offre strutture dati avanzate che risolvono problemi reali senza scrivere codice complesso. Ogni tipo ha un uso specifico. Impariamoli con esempi che puoi provare subito.
String — il mattone fondamentale
La stringa è il tipo base. Ci tieni un valore semplice: un token, una sessione, una pagina HTML cache. Comandi: SET, GET, SETEX (con scadenza).
SET user:1:name "Mario Rossi"
GET user:1:name
# Con TTL (scadenza) in secondi:
SETEX session:abc123 3600 "dati_sessione"
List — code e buffer
Una lista è una coda FIFO o LIFO. Perfetta per job queue o log temporanei.
LPUSH tasks "email_notification"
LPUSH tasks "generate_pdf"
RPOP tasks # estrae il primo ("email_notification")
Set — insiemi senza duplicati
Utile per tag, utenti unici, permessi.
SADD article:42:tags "redis" "database" "caching"
SMEMBERS article:42:tags
Sorted Set — graduatorie e ranking
Ogni elemento ha un punteggio. Ideale per leaderboard, classifiche, code con priorità.
ZADD leaderboard 100 "user1" 200 "user2" 50 "user3"
ZRANGE leaderboard 0 -1 WITHSCORES # ordine crescente
ZREVRANGE leaderboard 0 2 WITHSCORES # top 3
Hash — oggetti strutturati
Un hash mappa campi a valori. Perfetto per rappresentare un record: profilo utente, metadati, configurazioni.
HSET user:42 name "Maria" email "maria@esempio.com" age 28
HGET user:42 name
HGETALL user:42
Comandi fondamentali per la vita quotidiana
Oltre ai comandi specifici per tipo, ci sono operazioni trasversali che userai in ogni progetto.
Esistenza ed eliminazione
EXISTS user:1:name # 1 = esiste, 0 = no
DEL user:1:name # cancella la chiave
FLUSHALL # cancella TUTTO (attenzione!)
Scadenze (TTL) — il tuo migliore amico nel caching
EXPIRE cache:homepage 3600 # scade tra 1 ora
TTL cache:homepage # secondi rimanenti
Impostare TTL è la differenza tra un cache che funziona e uno che ti riempie la RAM di dati vecchi. Noi lo usiamo sempre.
Contatori atomici
INCR page:visits # incrementa di 1
INCRBY page:visits 5 # incrementa di 5
DECR page:visits # decrementa
Atomicità garantita. Niente race condition.
Primi passi operativi
Ora che conosci i comandi, vedi come usarli in un flusso reale. Supponiamo di voler cacheggiare il risultato di una query pesante.
# Simuliamo un dato costoso da calcolare
SETEX expensive:result 60 "{\"data\": \"valore calcolato\"}"
# La prossima volta, prima di ricalcolare, controlla
GET expensive:result
Nelle nostre applicazioni Laravel usiamo Redis per sessioni, cache delle route e code. Il setup è immediato: basta configurare il driver nel file .env.
Errori comuni da evitare subito
- Usare KEYS * in produzione: blocca Redis per secondi su dataset grandi. Usa
SCAN. - Dimenticare il TTL: i dati restano in memoria per sempre. Imposta sempre una scadenza per dati temporanei.
- Chiavi troppo grandi: una stringa da 10 MB rallenta tutto. Scomponi o usa compressione.
- Ignorare la persistenza: se il server si riavvia, perdi tutto. Valuta RDB o AOF in base ai tuoi requisiti.
In sintesi — cosa fare adesso
- Installa Redis sul tuo ambiente di sviluppo (Linux, macOS, Docker).
- Collegati con
redis-clie prova ogni data type con i comandi di questa guida. - Imposta un TTL su una chiave e verifica che scada.
- Leggi la documentazione ufficiale — è chiara e ben fatta: redis.io/docs.
- Integra Redis nella tua applicazione: se usi PHP, prova Predis; se usi Node.js, ioredis. Ma prima, padroneggia la console.
Redis è uno strumento potentissimo, ma va capito. Noi lo usiamo ogni giorno per accelerare siti, gestire code e ridurre il carico sui database. Parti da qui e vedrai i risultati nei tuoi tempi di risposta.
Sponsored Protocol