Vai al contenuto principale
SparkCore
Knowledge base

Redis object cache in WordPress: cosa fa e come configurarla

Una Redis object cache conserva i dati del database di WordPress tra una richiesta e l'altra, così bacheca, carrello e utenti connessi aspettano meno il database. Per i visitatori anonimi che ricevono già una pagina dalla cache delle pagine aggiunge poco. Questa guida spiega cosa fa una object cache, quando la consiglia WordPress stesso, come configurare Redis, cosa si può usare senza Redis e come la gestisce Spark Speed, il plugin di cache che realizziamo noi.
In breve
  • Una object cache velocizza tutto ciò che deve passare da WordPress: bacheca, carrello, checkout, utenti connessi
  • Accanto a una cache delle pagine, non al posto di essa
  • Il plugin da solo non basta: il suo hosting deve mettere a disposizione un server Redis
  • Senza Redis, le alternative sono Memcached, SQLite o i file

Cosa fa una object cache

WordPress conserva in memoria i risultati delle query del database durante una richiesta. Al termine di quella richiesta tutto scompare. La documentazione di WordPress lo spiega così: i dati non vengono memorizzati in modo persistente tra i caricamenti di pagina, a meno che non si installi un plugin di cache persistente. Un plugin di questo tipo inserisce il file object-cache.php in wp-content e da quel momento WordPress conserva quei dati in Redis, Memcached o un altro archivio, così la richiesta successiva non deve recuperarli di nuovo dal database.

Object cache o cache delle pagine: cosa velocizza cosa

Una cache delle pagine memorizza l'HTML completo e lo serve ai visitatori anonimi, spesso prima ancora che WordPress si avvii. Qui una object cache ha poco da aggiungere. Una object cache aiuta in tutto ciò che deve passare da WordPress: la bacheca, gli utenti connessi, il carrello, il checkout e l'area personale di WooCommerce, i risultati di ricerca e la ricostruzione della cache delle pagine. Si completano a vicenda; una non sostituisce l'altra.

Ne ha bisogno? Cosa consiglia WordPress stesso

WordPress ha un controllo per una object cache persistente in Salute del sito (Site Health). Nel codice sorgente di WordPress 7.0.2 quel controllo la consiglia solo su un multisite, oppure quando viene superata una di queste soglie. Un piccolo sito vetrina con una buona cache delle pagine di solito resta sotto.
  • più di 500 opzioni caricate automaticamente (autoload), oppure più di 100 kB di esse
  • più di 1.000 articoli, commenti, termini, utenti od opzioni
  • le soglie si possono modificare con il filtro site_status_persistent_object_cache_thresholds

Configurare Redis con il plugin Redis Object Cache

Il plugin da solo non basta: deve essere in esecuzione un server Redis raggiungibile da PHP. Negli hosting condivisi spesso non c'è e allora non è possibile avviarne uno in autonomia. Chieda al suo hosting se Redis è disponibile e a quale indirizzo. Nel nostro laboratorio non era in esecuzione alcun server Redis: il plugin ha segnalato Connection refused e ha lasciato disattivato il pulsante Enable Object Cache. È una scelta prudente del plugin.
  1. Chieda al suo hosting se Redis è disponibile e a quale indirizzo o socket
  2. Se Redis non si trova su 127.0.0.1:6379, imposti WP_REDIS_HOST e WP_REDIS_PORT (e, se serve, WP_REDIS_PASSWORD) in wp-config.php
  3. Se condivide Redis con altri siti, assegni a ogni sito il proprio WP_REDIS_PREFIX o database: altrimenti lo svuotamento può colpire l'intero database Redis
  4. Installi Redis Object Cache, vada su Impostazioni, Redis e faccia clic su Enable Object Cache
  5. Verifichi con wp redis status: Stato deve indicare Connected
Impostazioni di Redis Object Cache che mostrano Redis non raggiungibile e un pulsante Enable Object Cache disattivato
Redis Object Cache 3.0.0 nel nostro laboratorio senza server Redis: Redis Unreachable, quindi non può essere attivato.

Alternative: Memcached, APCu, SQLite e file

Niente Redis? Esistono altri archivi. Memcached funziona in modo simile ed è incluso in alcuni piani di hosting. APCu conserva i dati nella memoria di PHP, ma per ogni processo PHP, quindi WP-CLI e il web server non sempre vedono le modifiche l'uno dell'altro. SQLite e i file non richiedono un server separato e quindi funzionano anche su hosting di base.
PluginArchiviazioneInstallazioni attiveValutazioneUltimo aggiornamentoPHP minimo
Redis Object CacheRichiede un server Redis; PhpRedis, Predis o Relay500.000+4,5 (179)18 set 20267.2
Docket CacheArchivia in file PHP, Redis non necessario20.000+4,9 (50)15 ott 20267.2.5
SQLite Object CacheArchivia in un file SQLite, Redis non necessario10.000+5,0 (51)17 ago 20265.6

Dati di wordpress.org, consultati il 16 ottobre 2026. Le installazioni sono i numeri arrotondati mostrati da wordpress.org.

Come funziona l'object cache in Spark Speed

Spark Speed, il plugin di cache che realizziamo noi, ha una propria object cache come interruttore nella scheda Cache. Cosa aspettarsi, dal codice della versione 0.73.2 e dalla nostra documentazione:
  • Spark sceglie l'archivio offerto dal server, in questo ordine: Redis, Memcached, SQLite e APCu. Un WP_REDIS_HOST configurato ha sempre la precedenza.
  • Senza WP_REDIS_HOST, Spark prova 127.0.0.1:6379 e poi i percorsi socket di Redis noti che esistono sul server.
  • Se esiste già l'object-cache.php di un altro plugin, Spark non lo sovrascrive.
  • Se Redis è impostato sulla policy noeviction, Spark avvisa: in quel caso Redis rifiuta nuove scritture quando la memoria è piena, invece di eliminare le vecchie chiavi.
  • Cache delle pagine e object cache hanno ciascuna il proprio pulsante di svuotamento; svuotarne una non svuota l'altra.
  • Se il suo hosting fornisce già una object cache, lasci disattivato l'interruttore in Spark.

Ottimizzare Redis

Due impostazioni decidono se Redis continua a funzionare bene come cache. maxmemory dà a Redis un limite di memoria. maxmemory-policy decide cosa succede quando quel limite viene raggiunto. La documentazione di Redis definisce allkeys-lru un buon valore predefinito per una cache: vengono eliminate le chiavi usate meno di recente. Con noeviction Redis restituisce un errore alle scritture quando è pieno. Negli hosting condivisi o gestiti la imposta l'hosting; in caso di dubbio chieda.

Verifica e svuotamento

Se WordPress usa una object cache persistente lo vede in Salute del sito (Site Health) e con WP-CLI. Dopo una modifica fatta direttamente nel database, ad esempio un'importazione o una query SQL, svuoti l'object cache, altrimenti WordPress mostra ancora il vecchio valore.
  • wp cache flush svuota l'object cache (funziona con qualsiasi plugin di object cache)
  • wp redis status mostra stato, client e drop-in di Redis Object Cache
  • wp spark-speed flush-object-cache svuota l'object cache di Spark Speed
  • In Redis stesso, keyspace_hits e keyspace_misses di INFO stats mostrano quanto spesso la cache viene trovata
Attivi una sola object cache alla volta. Due plugin che vogliono entrambi gestire object-cache.php si ostacolano a vicenda.
Spark Speed combina cache delle pagine e object cache e sceglie l'archivio offerto dal suo server.

Domande frequenti

Soprattutto le parti che non arrivano dalla cache delle pagine: la bacheca, il carrello e il checkout, gli utenti connessi e i risultati di ricerca. Le pagine che arrivano già dalla cache delle pagine migliorano poco.

Entrambi conservano i dati dell'object cache nella memoria di un server separato. Per WordPress svolgono lo stesso compito; la scelta dipende soprattutto da ciò che offre il suo hosting.

Solo se il suo hosting offre Redis. Negli hosting condivisi di solito non è possibile avviare un server Redis in autonomia. Senza Redis è possibile usare una object cache su SQLite o su file.

Con wp cache flush tramite WP-CLI, oppure con il pulsante del suo plugin di object cache. Lo faccia dopo modifiche fatte direttamente nel database.