Cache: definizione e tutti gli ambiti in cui si usa il caching

Informativa sull'affiliazione v3.1
Informativa sull'affiliazione v3.2 (solo mobile)

Gli ambiti in cui si usa la cache, dall'hardware al web, sono stati raccolti in un unico albero seguendo le classificazioni di Wikipedia, MDN e della documentazione ufficiale di WordPress. CPU, sistema operativo, database e browser usano tutti lo stesso nome, quindi ciò che viene cancellato quando svuoti la cache dipende dal livello.

La cache conserva temporaneamente i dati usati spesso o che serviranno a breve in una memoria più veloce dell'originale e, quando arriva la stessa richiesta, risponde con quella copia invece che con l'originale.

L'articolo di Wikipedia in inglese Cache (computing) divide le cache in cache hardware, come quelle di CPU e GPU, e cache software, come quelle di disco, web, DNS e database. L'albero qui sotto raggruppa questa classificazione in base a dove si trova ogni cache, e le cache web seguono la distinzione di MDN tra private cache e shared cache.

🗂️ Dove si usa la cache
💻 Ⅰ. Dispositivi dell'utente
Cache del sistema operativoCache del disco · cache DNS
Cache del browserPrivate cache della cache HTTP
Cache delle app mobiliMiniature · dati di sessione
🖥️ Ⅱ. Server e applicazione
Cache di paginaHTML già pronto (WP Rocket · cache FastCGI)
OPcacheBytecode PHP
Cache a oggettiRedis · Memcached
Cache dei framework webLaravel · Django
🌐 Ⅲ. Distribuzione dei contenuti · rete
CDNShared cache della cache HTTP
Cache del proxyDiretto · inverso (Varnish)
Cache di reteCache ARP · cache del resolver DNS
🗄️ Ⅳ. Database · archiviazione
Cache interna del DBBuffer pool di InnoDB · Shared Buffers
Cache di archiviazioneController del disco · DRAM dell'SSD
⚙️ Ⅴ. Hardware
Cache della CPUL1 · L2 · L3 · TLB
Cache della GPUTexture · dati degli shader
☁️ Ⅵ. Cloud · virtualizzazione
Cache dei containerLayer di Docker
Funzioni serverlessWarm Start
Cache di buildDipendenze CI/CD · artefatti

Nel simulatore dell'articolo Cache del sito web & cache interna del server: come funziona la cache di WordPress puoi vedere in che ordine la cache del browser, la CDN e la cache interna del server gestiscono una singola richiesta di WordPress.

Ⅰ. Dispositivi dell'utente

  • ↳ Client-Side Cache

La cache sui dispositivi dell'utente, come computer e smartphone, si può dividere in cache del sistema operativo (OS), cache del browser e cache delle app mobili.

Cache del sistema operativo (OS)Memoria del dispositivo (RAM)
Cosa salvaDati letti dal disco · domini e indirizzi IP

La cache del disco (page cache) mantiene in memoria i dati letti dal disco ed è gestita dal kernel del sistema operativo. La cache DNS conserva i domini e gli indirizzi IP consultati di recente.

Cache del discoCache DNS
Cache del browserSpazio di archiviazione del browser
Cosa salvaHTML · CSS · JS · immagini · font

Quando la stessa risorsa viene richiesta di nuovo, la richiesta non arriva fino al server oppure verifica solo se è cambiata. Con un Service Worker (Cache API) una web app può aprirsi con le risorse salvate anche offline.

private cacheService Worker
Cache delle app mobiliSpazio di archiviazione dell'app
Cosa salvaMiniature · parte dei contenuti · stato di accesso

Le app che gestiscono contenuti pesanti salvano sul dispositivo i dati scaricati e gli elenchi visti di recente, così non riscaricano gli stessi dati.

YouTubeInstagram

Ⅱ. Cache del server e delle applicazioni

  • ↳ Server-Side Cache

La cache lato server è la cache che interviene nel processo di creazione della pagina dopo che la richiesta arriva al server. La documentazione ufficiale di WordPress la divide in plugin di caching (cache delle pagine), cache degli oggetti e cache del server (cache dell'opcode come OPcache).

Cache di paginaDisco del server · memoria
Cosa salvaPagina HTML finita

Per la stessa pagina invia la copia salvata senza eseguire PHP. Ci sono plugin di cache e cache del server web.

WP RocketCache FastCGI di NginxLiteSpeed Cache
OPcacheMemoria del server
Cosa salvaBytecode PHP compilato

Quando lo stesso file viene eseguito di nuovo, la compilazione viene saltata. È incluso di serie da PHP 5.5.

Cache dell'opcode
Cache a oggettiMemoria del server
Cosa salvaRisultati delle query · dati di sessione

Salva i dati usati spesso in un archivio in memoria per non ripetere la stessa query.

RedisMemcached
Cache dei framework webApplicazione
Cosa salvaTemplate · route · risultati delle query

I framework web salvano i template renderizzati e i risultati delle query nella propria cache.

LaravelDjango

Ⅲ. Cache di distribuzione dei contenuti / infrastruttura di rete

Le cache dell'infrastruttura di rete rispondono con una copia tra il visitatore e il server di origine, riducendo la distanza fisica e il carico del server di origine. Nello standard di caching HTTP corrispondono alla shared cache usata da più visitatori.

CDNServer edge
Cosa salvaFile statici · pagine

Consegna i contenuti dal server più vicino al visitatore tra quelli distribuiti in tutto il mondo. La struttura e i vantaggi sono spiegati nell'articolo Cos'è una CDN? Perché usarla e 5 vantaggi dedicato all'argomento.

CloudflareAkamaiFastlyQUIC.cloud
Cache del proxyServer proxy
Cosa salvaRisposte del server

Il proxy diretto salva le risposte davanti al client, come in una rete aziendale, mentre il proxy inverso le salva davanti al server.

Varnish CacheProxy inverso Nginx
Cache di reteApparati di rete · resolver DNS
Cosa salvaAssociazioni tra IP e indirizzi MAC · risultati delle query DNS

Gli apparati di rete salvano le associazioni nella cache ARP, mentre i resolver DNS dei provider e quelli pubblici conservano i risultati delle query per il TTL del record.

Cache ARPCache del resolver DNS

Ⅳ. Cache di database e sistemi di archiviazione

Poiché l'I/O su disco è lento, database e dispositivi di archiviazione tengono in memoria i dati letti spesso.

Cache interna del databaseMemoria del server DB
Cosa salvaDati letti spesso · indici

Mantiene in memoria i dati letti spesso e gli indici. La query cache di MySQL è stata rimossa nella 8.0; MariaDB la conserva, ma è disattivata per impostazione predefinita.

Buffer pool di InnoDBPostgreSQL Shared BuffersMongoDB WiredTiger
Cache di archiviazioneMemoria all'interno del dispositivo di archiviazione
Cosa salvaDati letti · scritti di recente

La memoria integrata nel controller del disco rigido e la DRAM all'interno dell'SSD salvano temporaneamente i dati e riducono la latenza di I/O.

Cache del controller del discoSSD · NVMe DRAM

Ⅴ. Cache a livello hardware

Le cache hardware sono memorie ad alta velocità all'interno di CPU e GPU che elaborano i dati più rapidamente della memoria principale (RAM).

Cache della CPUAll'interno del processore
Cosa salvaIstruzioni · dati · traduzioni degli indirizzi

La L1 è separata per ogni core e si divide in cache delle istruzioni e cache dei dati, mentre la L3 è condivisa da tutti i core. L'unità di gestione della memoria (MMU) salva nel TLB i risultati della traduzione degli indirizzi virtuali in indirizzi fisici.

L1L2L3TLB
Cache della GPUAll'interno dell'unità di elaborazione grafica
Cosa salvaTexture · istruzioni degli shader · risultati intermedi

Aumenta l'efficienza di elaborazione della GPU nei giochi, nella grafica 3D e nei calcoli di machine learning.

Ⅵ. Cache negli ambienti cloud / di virtualizzazione

Gli ambienti cloud e di virtualizzazione riutilizzano immagini dei container, ambienti di esecuzione delle funzioni e artefatti di build per ridurre i tempi di distribuzione e di esecuzione.

Cache dei containerServer di build · registry
Cosa salvaLayer delle immagini

Un'immagine Docker è composta da più layer, e i layer che non sono cambiati non vengono ricostruiti né riscaricati.

Docker
Funzioni serverlessAmbiente di esecuzione cloud
Cosa salvaAmbiente di esecuzione

Mantiene per un certo tempo l'ambiente di esecuzione di una chiamata conclusa e lo riutilizza alla chiamata successiva, riducendo il tempo di inizializzazione (Cold Start) (Warm Start).

AWS LambdaGoogle Cloud Functions
Cache di buildArchivio della cache CI
Cosa salvaLibrerie di dipendenze · risultati della compilazione

Riduce i tempi delle build ripetute.

GitHub ActionsGitLab CI

🔢 FAQ & contenuti consigliati

No. Svuotare la cache del browser cancella solo le copie salvate sul dispositivo del visitatore. La cache delle pagine sul server e le copie della CDN le svuota il gestore del sito dal plugin di cache o dal pannello della CDN.

La prima richiesta subito dopo lo svuotamento arriva fino all'originale, quindi risponde più lentamente del solito. Quando quella richiesta ricrea la copia, dalle richieste successive si torna alla velocità normale, e il [Precaricamento] di WP Rocket crea le copie in anticipo dopo lo svuotamento.

In Windows le dimensioni delle cache L1, L2 e L3 compaiono in fondo alla schermata [Prestazioni] → [CPU] di Gestione attività. In Linux puoi vedere gli stessi valori nell'output del comando [lscpu].

💾 Articoli sulla cache 10 articoli
🗂️ Cache
📋 Cache: definizione e tutti gli ambiti 📄 Cache del sito web & cache interna del server
📋 Guida alle impostazioni di WP Rocket 📝 Zend OPcache 📝 Installare Redis Cache
📝 Cos'è una CDN? 📝 Varnish Cache
📋 Test di velocità di WP Rocket 📝 Un caso di miglioramento della velocità 📝 Plugin di cache · ottimizzazione

ℹ️ Informativa sull'affiliazione
I contenuti di questo sito includono link di affiliazione. Se un visitatore acquista un prodotto o un servizio tramite uno di questi link, il sito riceve una commissione dal venditore. In questo processo l'importo pagato dall'acquirente (durante le promozioni l'importo scende↓) non aumenta. Prezzi, sconti e disponibilità indicati si riferiscono al momento della stesura e possono differire da quelli reali: prima di acquistare verifica sempre presso il venditore. I prodotti vengono scelti e valutati secondo criteri propri, e le commissioni non influiscono sull'ordine di presentazione né sul contenuto delle valutazioni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Dimostra di essere umano: 10   +   3   =