Guide

Redis o Memcached su un VPS WordPress: differenze e installazione passo passo

Come scegliere tra Redis e Memcached per la cache a oggetti di WordPress su Ubuntu 24.04: comandi, plugin, verifica finale.

Redazione UptimeMag · 21 ottobre 2026 · 5 minuti di lettura

Redis o Memcached su un VPS WordPress: differenze e installazione passo passo

Chi gestisce un VPS WordPress con traffico reale prima o poi sbatte contro lo stesso muro: la cache a pagina intera non basta più, perché utenti loggati, carrelli WooCommerce o aree riservate non possono essere serviti da una pagina statica. Qui entra in gioco la cache a oggetti, quella che intercetta le query ripetute verso wp_options, wp_postmeta e simili prima che arrivino al database. I due backend che la implementano sono Redis e Memcached. Non sono intercambiabili senza differenze: ecco cosa cambia davvero e come installarli su Ubuntu 24.04.

Le differenze che contano, non quelle da depliant

Sul singolo host, per il traffico generato da una richiesta WordPress, le due cache sono sostanzialmente indistinguibili in termini di velocità pura. Per un sito WordPress che ha bisogno di una cache a oggetti persistente, Redis è la scelta di default giusta, non perché sia più veloce, ma perché i drop-in Redis sono attivamente mantenuti mentre quelli Memcached no.

Le differenze tecniche concrete:

Caratteristica Redis Memcached
Persistenza su riavvio Opzionale (RDB/AOF) No, riparte vuoto
Strutture dati Stringhe, liste, hash, set Solo chiave-valore semplice
Dimensione massima elemento Fino a 512 MB 1 MB di default
Database logici per isolare siti Sì, numerati No
Threading Singolo thread sui comandi Multithread
Porta di default 6379 11211

Il limite di 1 MB di Memcached si fa sentire quando un plugin scrive un valore più grande in quella soglia: Memcached lo scarta e WordPress torna al database per una delle query più frequenti. Su un sito con molti plugin attivi o con WooCommerce è un rischio concreto. Sul fronte multi-sito, Redis supporta database logici numerati che permettono di dare a ogni sito il proprio spazio separato, cosa che Memcached non offre.

Sul riavvio del processo: se si riavvia Memcached la cache sparisce e riparte vuota, riempiendosi di nuovo col tempo. Non è un dramma operativo — il database regge comunque — ma su un sito molto trafficato significa qualche minuto di carico più alto subito dopo ogni deploy o riavvio del servizio.

Installazione di Redis su Ubuntu 24.04

Il pacchetto è già nei repository ufficiali Ubuntu:

sudo apt update
sudo apt install redis-server
redis-server --version
sudo systemctl enable --now redis-server
sudo systemctl status redis-server

Se serve una versione più recente di quella pacchettizzata da Ubuntu, Redis Ltd mantiene un repository APT separato. Il comando ufficiale aggiunge la chiave GPG e il repository packages.redis.io, poi installa con apt-get install redis, che porta l'ultima versione stabile invece di quella congelata nei repository di sistema.

Serve anche l'estensione PHP per far parlare WordPress con Redis:

sudo apt install php-redis
sudo systemctl restart php8.3-fpm

(sostituire php8.3-fpm con la versione di PHP-FPM effettivamente in uso sul VPS).

Per un server in produzione, oltre all'installazione va impostato un limite di memoria e una politica di evizione, altrimenti Redis può riempire tutta la RAM disponibile: si installa Redis a livello di sistema, si imposta maxmemory su un valore fisso in base al budget di RAM dell'host e si imposta maxmemory-policy su allkeys-lru. Queste due righe vanno aggiunte in /etc/redis/redis.conf e poi si riavvia il servizio con sudo systemctl restart redis-server.

Installazione di Memcached su Ubuntu 24.04

sudo apt update
sudo apt install memcached
sudo systemctl enable --now memcached
sudo apt install php-memcached
sudo systemctl restart php8.3-fpm

Attenzione a un dettaglio che molte guide saltano: il plugin ufficiale per WordPress, "Memcached Object Cache", non usa l'estensione moderna php-memcached ma quella storica. Aprendo la pagina del plugin su WordPress.org risulta infatti che è richiesto un server memcached e l'estensione PECL memcache — nome della classe scritto senza la "d" finale, quella legacy, non la libreria basata su libmemcached che oggi si installa di norma via apt. Lo stesso plugin, al momento della consultazione, risultava fermo alla versione 4.0.0, aggiornato l'ultima volta 4 anni fa, con 10+ installazioni attive e testato fino a WordPress 6.1.15: numeri che segnalano un progetto poco manutenuto, da verificare caso per caso prima di affidarci un sito in produzione.

Configurare il plugin object-cache per WordPress

Con Redis

  1. Installare il plugin "Redis Object Cache" (di Till Krüss) dalla bacheca plugin di WordPress o da riga di comando con WP-CLI: wp plugin install redis-cache --activate.
  2. Aggiungere in wp-config.php, prima della riga "Che's all, stop editing":
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
  1. Attivare la cache dal pannello Impostazioni → Redis, cliccando su "Enable Object Cache", oppure da terminale con wp redis enable.

Su un server che ospita più installazioni WordPress, va aggiunta anche la variabile WP_REDIS_DATABASE per assegnare a ogni sito un numero di database logico diverso (da 0 a 15 di default), evitando che un flush su un sito svuoti anche la cache degli altri.

Con Memcached

  1. Copiare manualmente il file object-cache.php del plugin nella cartella wp-content/ del sito: i passaggi di installazione previsti sono installare memcached su almeno un server, annotare le informazioni di connessione, installare l'estensione PECL memcache e copiare object-cache.php in wp-content.
  2. Aggiungere in wp-config.php la costante WP_CACHE_KEY_SALT con una stringa casuale univoca: questo aiuta a prevenire l'inquinamento della cache quando più installazioni WordPress condividono lo stesso server Memcached, e il valore deve essere unico per ogni installazione.

Verificare che la cache sia davvero attiva

Non basta vedere il plugin "attivo" nella bacheca: va controllato che WordPress stia davvero scrivendo e leggendo dalla cache esterna.

  • Da riga di comando, con Redis: redis-cli monitor mostra in tempo reale i comandi GET/SET mentre si naviga il sito in un'altra scheda. Se la lista resta vuota, il drop-in non è caricato.
  • Sempre con Redis: wp redis status (via WP-CLI) restituisce lo stato della connessione e il tipo di client usato (PhpRedis, Predis o Relay).
  • Controllare che il file wp-content/object-cache.php esista davvero: è un drop-in copiato dal plugin, non un file che compare automaticamente attivando il plugin dalla bacheca.
  • Per Memcached, memcached-tool 127.0.0.1:11211 stats mostra il numero di get/set e la percentuale di hit sulla cache.
  • Un plugin di debug come Query Monitor aggiunge una scheda "Object Cache" con il numero di query risparmiate e il tipo di backend rilevato: è il modo più rapido per vedere l'effetto senza aprire un terminale.

Se dopo aver attivato il plugin il numero di query al database nella pagina admin resta identico a prima, quasi sempre la causa è il file object-cache.php mancante in wp-content/ o un errore di connessione alla porta sbagliata (6379 per Redis, 11211 per Memcached).

Testo redatto con il supporto dell'intelligenza artificiale e verificato dalla redazione (AI Act, art. 50).