Strategia di Caching: Ottimizzazione delle Prestazioni a Multi-Livello
Questo articolo spiega come utilizziamo il caching a ogni livello per garantire caricamenti di pagina rapidi a livello globale.
Il Problema: Le Richieste Senza Cache Sono Lente
Senza caching, ogni caricamento di pagina richiede:
-
Query al database: Recupero di dati prodotto, livelli di stock, prezzi
-
Chiamate API: Servizi esterni per tariffe di spedizione, pagamenti
-
Calcoli: Calcoli dei prezzi, verifiche della disponibilità
-
Caricamento immagini: Immagini prodotto, miniature
Il caching elimina il lavoro ripetuto memorizzando i risultati per il riutilizzo.
La Soluzione: Caching Multi-Livello
Effettuiamo il caching a cinque livelli:
- Cache del browser: Il dispositivo dell'utente memorizza le risorse statiche
- Cache della CDN: Le edge location di CloudFront memorizzano i contenuti globalmente
- Cache dell'applicazione: Valkey memorizza i dati a cui si accede frequentemente
- Cache del database: Valkey si posiziona davanti al database
- Cache dell'IA: DeepSeek memorizza le richieste di sistema (prompt)
Livelli di Caching
Caching del Browser (CloudFront)
CloudFront fornisce il caching del browser con TTL appropriati:
-
Immagini: TTL lungo (24-72 ore)
-
CSS/JS: Versionati con cache-busting
-
Risposte API: TTL breve o nessuna cache
Caching della CDN (CloudFront)
CloudFront memorizza i contenuti nelle edge location:
-
Risorse statiche: Immagini prodotto, CSS, JS
-
Pagine prodotto: TTL di 24 ore
-
Pagine di query: TTL di 24 ore
-
Risposte API: Nessun caching
Caching dell'Applicazione (Valkey)
Valkey fornisce il caching in memoria:
-
Sessioni: Sessioni utente con scadenza variabile (sliding expiry)
-
Query popolari: Termini più cercati
-
Autocompletamento: Suggerimenti di ricerca
-
Conteggi prodotto: Disponibilità dello stock
-
Mappature di frasi: Dati per l'estrazione dei filtri
Caching del Database
Valkey si posiziona davanti al database:
-
Dati prodotto: Memorizzati in cache per le prestazioni
-
Costi dei componenti: Memorizzati per i calcoli dei prezzi
-
Elenchi SKU: Memorizzati per gli elenchi prodotti
-
Manifesti delle immagini: Memorizzati per il caricamento delle immagini
Caching dell'IA (DeepSeek)
DeepSeek fornisce il caching delle richieste (prompt):
-
Prompt di sistema: Memorizzati per l'efficienza
-
Cache hit: Riduzione dell'utilizzo di token
-
Cache miss: Generazione di nuovi contenuti
Caching delle Traduzioni
Il caching delle traduzioni utilizza più livelli:
-
Valkey: Tabelle di frasi memorizzate in memoria
-
File: Tabelle di frasi archiviate in modo persistente in file JSON
-
Fallback: Cache legacy basata su hash per la compatibilità con le versioni precedenti
Invalidazione della Cache
Invalidiamo le cache quando:
-
Aggiornamenti prodotto: Invalidazione delle cache prodotto
-
Cambiamenti stock: Invalidazione delle cache dei conteggi stock
-
Aggiornamenti contenuti: Invalidazione delle cache delle pagine
-
Aggiornamenti traduzioni: Invalidazione delle cache di traduzione
Organizzazione della Cache
Le cache Valkey sono organizzate per funzione:
-
Sessioni: Stato di autenticazione utente
-
Autocompletamento: Dati per i suggerimenti di ricerca
-
Query popolari: Termini cercati frequentemente
-
Mappature di frasi: Dati per l'estrazione dei filtri
-
Costi dei componenti: Dati per il calcolo dei prezzi
Riepilogo
La nostra strategia di caching offre:
-
Multi-livello: Browser, CDN, applicazione, database
-
Efficienza: Valkey per accesso rapido in memoria
-
Intelligenza: Caching dei prompt di IA per il risparmio dei costi
-
Affidabilità: Meccanismi di fallback multipli