Vai al contenuto
EuroVPSEuroVPS

Il caching PHP spiegato: OPcache, Memcached e Redis

PHP fa funzionare una quota molto ampia dei siti dinamici, ed è importante che gli sviluppatori PHP siano aggiornati sul caching: OPcache, cache dei dati e page cache.

Di Thomas

Aggiornato il 22 ottobre 20264 min di lettura
Immagine di copertina: il caching PHP spiegato

Cos'è PHP?

PHP è un linguaggio di programmazione usato per creare contenuti dinamici in una pagina web: mostrare un elenco di record da un database, recuperare pubblicità, oppure visualizzare un feed di notizie o un flusso Twitter. Un modo per rendere tutto questo più veloce è usare il caching PHP.

Cos'è il caching?

Le pagine web si caricano più in fretta se parti della pagina, o la pagina intera, vengono conservate in memoria, in un file sul web server o presso la content distribution network (CDN), anziché essere generate ogni volta che qualcuno richiede quell'URL. Questo si chiama caching. Offre un'esperienza migliore agli utenti, che non devono attendere a lungo quando cliccano perché si carichi la pagina successiva.

Si possono mettere in cache contenuti come immagini, HTML e dati. Per esempio, non è necessario recuperare la stessa immagine 10 volte per 10 persone diverse. Meglio metterla in cache. La cache conserva quella pagina web con tutti i dati già al loro posto, come un elenco di nomi.

label: Letture correlate

link: Varnish Cache spiegato (anchor = h1 of the Italian manuscript; href unchanged)

Il ricettario del programmatore

Pensate a una chiamata al database. Non ha senso leggere il database 100 volte per 100 persone che caricano tutte gli stessi record, come qualcosa comune a molti, per esempio il prezzo di un articolo che state promuovendo in evidenza. È più efficiente recuperare quel valore dalla cache.

Le applicazioni possono mettere in cache anche le risposte delle API. Per esempio, la pubblicità all'interno delle pagine funziona tramite API. Ma è un controesempio: non mettereste in cache un annuncio, perché l'inserzionista mostra annunci diversi a persone diverse.

Il caching quindi non si applica a tutte le situazioni. In particolare non è adatto a dati che cambiano di frequente o che sono unici per ciascun utente.

PHP ha una cache importante integrata: OPcache, fornita con PHP. Ogni volta che uno script PHP viene eseguito, PHP lo compila prima in bytecode; OPcache conserva quel bytecode compilato in memoria condivisa, così gli script non vengono ricompilati a ogni richiesta. Assicuratevi che sia abilitata e che la sua memoria sia abbastanza grande per la vostra base di codice. Di solito è l'accelerazione PHP più economica disponibile.

PHP non ha però una cache integrata per i vostri dati. Per quella esistono framework ed estensioni open source, come i client Memcached e Redis, che permettono al programmatore di progettare il codice in questo modo. Una libreria client controlla la cache prima di interrogare il database.

Caching PHP e WordPress

WordPress ha una API di object cache che può appoggiarsi a Memcached o Redis, e plugin di page cache come W3 Total Cache o WP Super Cache aggiungono il caching dell'intera pagina. Questo aiuta ad accelerare anche la pubblicazione dei contenuti. E qualunque codice WordPress personalizzato che scrivete può usare il caching, se aggiungete un framework.

Regolare la cache

Un'obiezione legittima: come può una cache conoscere gli ultimi cinque titoli senza controllare? La risposta è che non li conosce.

Il caching è governato da dimensione e tempo. Potete quindi impostare la durata della cache a 5 secondi o a 5 minuti.

Quando la durata della cache scade, il codice PHP compie il viaggio fino al database server o all'API per verificare se qualcosa è cambiato.

Le cache sono limitate anche dalla dimensione: quando una cache è piena, le voci usate meno di recente vengono espulse per fare spazio alle nuove.

In conclusione

PHP fa funzionare una quota molto ampia dei siti dinamici.

OPcache, una cache dei dati e una page cache sono i tre livelli che vale la pena mettere a punto. Se avete domande, contattate il nostro team.

Dall'archivio del blog EuroVPS, pubblicato per la prima volta il 10 agosto 2021.

Tutte le note dal campo