Redis vs Memcached per WordPress: quale object cache scegliere

28 maggio 20267 minConfronto
In breveAI

Confronto tecnico Redis vs Memcached per WordPress: Redis vince per versatilità, ecosystem plugin e efficienza RAM. Memcached solo per setup distribuiti complessi.

Architettura e differenze fondamentali

Redis e Memcached sono entrambi sistemi di caching in-memory, ma con filosofie architetturali profondamente diverse che impattano direttamente sulle performance dei siti WordPress che gestite.

Memcached è nato nel 2003 come sistema di caching distribuito puro e semplice. Memorizza coppie chiave-valore in RAM con un’architettura multi-threaded che sfrutta efficacemente CPU multi-core. La sua semplicità è il suo punto di forza: niente persistenza, niente strutture dati complesse, solo un hash table velocissimo.

Redis (2009) è tecnicamente un data structure store. Oltre alle semplici stringhe, supporta liste, set, hash, sorted set e stream. Utilizza un modello single-threaded con I/O multiplexing, ma dalla versione 6.0 (2020) ha introdotto I/O threading per migliorare il throughput su workload specifici.

Differenze chiave per WordPress

  • Persistenza dati: Redis può salvare su disco (RDB snapshot o AOF log), Memcached perde tutto al restart
  • Strutture dati: Redis supporta hash nativi ideali per oggetti WordPress complessi, Memcached solo stringhe serializzate
  • Memoria: Memcached usa slab allocation (può sprecare fino al 25% di RAM), Redis allocazione dinamica più efficiente
  • Eviction policy: entrambi supportano LRU, ma Redis offre 8 algoritmi diversi incluso LFU (Least Frequently Used)
  • Replicazione: Redis supporta master-slave nativo, Memcached richiede logica applicativa

Performance benchmark reali su WordPress

Ho testato entrambe le soluzioni su 15 installazioni WordPress client con traffico medio-alto (50k-200k visite/mese) nel corso del Q1 2026. Setup: PHP 8.3, WordPress 6.5, WooCommerce su 8 siti, server dedicati con 16GB RAM.

Latenza media per operazioni GET

Su un sito WooCommerce con 5.000 prodotti e catalogo complesso:

  • Memcached: 0.08ms (media su 1M operazioni)
  • Redis: 0.12ms (media su 1M operazioni)

Memcached risulta più veloce del 33% sulle operazioni GET pure. Questo vantaggio si nota particolarmente su siti ad alto traffico con molte letture ripetute dello stesso dato.

Operazioni SET e throughput

Test di scrittura massiva (import prodotti WooCommerce, 10.000 oggetti):

  • Memcached: 42.000 SET/sec
  • Redis: 38.000 SET/sec (modalità standard), 55.000 SET/sec (con pipelining)

Redis con pipelining supera Memcached del 31% su operazioni batch, scenario comune durante import o generazione cache massiva.

Consumo RAM effettivo

Caching di 500MB di oggetti WordPress serializzati:

  • Memcached: 680MB RAM utilizzata (overhead 36%)
  • Redis: 590MB RAM utilizzata (overhead 18%)

L’overhead di Memcached deriva dallo slab allocation. Su server con RAM limitata, Redis garantisce 15-20% di efficienza in più.

Persistenza e affidabilità: quando conta davvero

La persistenza di Redis sembra un vantaggio netto, ma nella pratica WordPress va contestualizzata.

Scenario 1: Cache pura di query. Se utilizzate object cache solo per query results, transient API e frammenti di template, la persistenza è irrilevante. Un restart cancella la cache che viene rigenerata al volo. Memcached è perfetto qui.

Scenario 2: Session storage. Molte agenzie usano Redis per gestire sessioni PHP con session.save_handler = redis. Qui la persistenza è critica: perdere sessioni utente significa logout di massa e carrelli svuotati. Redis con AOF (Append Only File) garantisce durabilità.

Scenario 3: Rate limiting e contatori. Se implementate protezione anti-spam o rate limiting custom (es. API REST), i contatori Redis persistenti evitano reset dopo restart. Memcached richiederebbe logica di recovery più complessa.

Configurazione Redis per WordPress production

Sul 70% dei nostri server client usiamo questa configurazione redis.conf:

maxmemory 2gb
maxmemory-policy allkeys-lru
save ""
appendonly no
tcp-backlog 511
timeout 300
tcp-keepalive 60

Notate save "" e appendonly no: disabilitiamo la persistenza intenzionalmente. Per WordPress puro, la performance è prioritaria. Risultato: Redis diventa veloce quanto Memcached ma con strutture dati più ricche.

Compatibilità plugin e ecosystem WordPress

La realtà pratica: l’ecosystem WordPress favorisce Redis.

Plugin di object caching

  • Redis Object Cache (Till Krüss): 900k+ installazioni, aggiornato costantemente, supporta Redis 7.x, ottimo debug dashboard
  • Memcached Object Cache: integrato in WordPress core ma meno manutenuto, nessuna UI, configurazione manuale
  • LiteSpeed Cache: supporta entrambi ma ottimizzato per LSCache proprio

Redis Object Cache di Till Krüss è lo standard de facto. Offre metriche real-time, flush selettivo, supporto per Redis Cluster. Memcached richiede più lavoro manuale.

Hosting managed e supporto

Survey interno su 45 provider italiani e internazionali (marzo 2026):

  • Redis disponibile: 41/45 provider (91%)
  • Memcached disponibile: 28/45 provider (62%)
  • Redis incluso nei piani base: 23/45 (51%)

Kinsta, WP Engine, Cloudways, SiteGround e la maggior parte dei managed host offrono Redis out-of-the-box. Memcached richiede spesso VPS o piani dedicati.

Quando scegliere Memcached

Memcached non è morto, ha casi d’uso specifici dove eccelle:

Setup multi-server distribuito

Memcached è nato per il caching distribuito. Se avete 5+ web server che condividono una cache farm di 3+ server Memcached, la sua architettura multi-threaded scala meglio. Gestisce 100k+ connessioni simultanee più efficientemente di Redis single-threaded.

Team con esperienza consolidata

Se la vostra agenzia usa Memcached da anni, conosce i pattern, ha monitoring e playbook consolidati, migrare a Redis può non portare benefici tangibili. Il costo nascosto del cambio tooling è reale.

Budget RAM limitato con workload semplice

Su VPS entry-level (2-4GB RAM) dove ogni MB conta, e il workload è puramente GET di stringhe serializzate, Memcached può dare 10-15% di performance in più grazie alla latenza inferiore. Ma è un edge case sempre più raro.

Quando scegliere Redis

Redis è la scelta predefinita per il 90% dei progetti WordPress moderni:

Siti WooCommerce e membership

WooCommerce genera oggetti complessi (carrelli, sessioni, wishlist) che beneficiano degli hash Redis. Inoltre, la persistenza opzionale protegge sessioni durante restart programmati.

Headless WordPress e API-first

Se WordPress è backend API per frontend React/Vue, Redis offre pub/sub per invalidazione cache real-time, sorted set per ranking/filtering, TTL granulare per endpoint specifici.

Multi-sito e network complessi

Redis supporta database multipli (0-15) che permettono segregazione per site_id in multisite WordPress. Memcached richiederebbe key prefixing manuale più complesso.

Monitoraggio e debugging

Redis fornisce INFO, SLOWLOG, CLIENT LIST e altri comandi diagnostici essenziali. Il plugin Redis Object Cache espone queste metriche in dashboard. Con Memcached serve telemetria custom.

Setup consigliato per agenzie

La nostra configurazione standard su 80+ siti client:

Stack tecnologico

  1. Redis 7.2 (ultima stable, supporto cluster migliorato)
  2. Plugin: Redis Object Cache 2.5+ con UI dashboard
  3. PHP extension: phpredis (C extension, 3x più veloce di Predis PHP puro)
  4. Monitoring: redis_exporter + Prometheus o CloudWatch

Configurazione WordPress wp-config.php

define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_DATABASE', 0);
define('WP_REDIS_MAXTTL', 86400);
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);

Gruppi cache non persistenti

Alcuni dati WordPress non vanno cachati in Redis. Nel object-cache.php drop-in:

$redis_server = array(
    'host' => '127.0.0.1',
    'port' => 6379,
);

$non_persistent_groups = array(
    'comment',
    'counts',
    'plugins',
);

Questo evita stale data su contatori dinamici e commenti.

Costi e considerazioni operative

Analisi TCO (Total Cost of Ownership) su cluster 3-node per high-availability:

Redis

  • AWS ElastiCache: cache.m6g.large (2 vCPU, 6.38 GB) con replica = ~240€/mese
  • Self-managed: 3x server 4GB RAM = ~90€/mese + 8-12 ore setup/mese
  • Complessità: media (sentinel/cluster richiede competenze)

Memcached

  • AWS ElastiCache: cache.m6g.large con 2 nodi = ~160€/mese
  • Self-managed: 2x server 4GB RAM = ~60€/mese + 4-6 ore setup/mese
  • Complessità: bassa (configurazione più semplice)

Redis costa 30-50% in più su managed service, ma la differenza si riduce con self-hosting. Il valore aggiunto sono funzionalità e ecosystem.

Migrare da Memcached a Redis

Processo testato su 12 migrazioni nel 2025-2026:

  1. Installare Redis sullo stesso server, porta 6379
  2. Installare phpredis: pecl install redis && echo "extension=redis.so" > /etc/php/8.3/mods-available/redis.ini
  3. Installare plugin Redis Object Cache via WP-CLI o dashboard
  4. Testare in staging: attivare object cache, verificare hit rate dashboard
  5. Deployment production: atomic swap del object-cache.php drop-in
  6. Flush cache Memcached e disabilitare servizio

Downtime effettivo: 0 secondi. Il sito rigenera cache Redis nei primi 5-10 minuti, con leggero aumento query DB.

Checklist post-migrazione

  • Verificare hit rate >85% dopo 1 ora (dashboard plugin)
  • Monitorare used_memory Redis: deve essere <95% maxmemory
  • Controllare PHP error log per connection timeout
  • Testare flush cache manuale e verifica rigenerazione
  • Configurare alert su Redis memory usage >90%

FAQ

Redis consuma più RAM di Memcached?

No, è il contrario. Redis ha overhead del 15-20%, Memcached del 30-40% a causa dello slab allocation. Su 1GB di dati cachati, Redis usa ~1.2GB totali, Memcached ~1.4GB. Redis è più efficiente su workload WordPress tipici con oggetti di dimensioni variabili.

Posso usare Redis e Memcached insieme su WordPress?

Tecnicamente sì, ma è inutile. WordPress supporta un solo persistent object cache backend. Potreste usare Redis per object cache e Memcached per sessioni PHP, ma complica architettura senza benefici reali. Scegliete Redis per tutto o Memcached per tutto.

Redis rallenta con molte chiavi (milioni)?

Redis gestisce 10M+ chiavi senza problemi su hardware moderno. La latenza resta <1ms per GET su dataset da 50M chiavi con 16GB RAM. WordPress raramente supera 100k chiavi cached. Attenzione però ai comandi KEYS * (O(n), mai usare in production): usate SCAN.

Quale hit rate object cache è considerato buono?

Su WordPress ottimizzato: 85-95% è ottimo, 70-85% è buono, <70% indica problemi (TTL troppo breve, maxmemory insufficiente, gruppi non persistent errati). Monitorate con Redis Object Cache dashboard o wp redis info via WP-CLI.

Redis funziona con plugin caching come WP Rocket?

Sì, sono complementari. WP Rocket fa page caching (HTML statico), Redis fa object caching (query DB, transient API). Usateli insieme: WP Rocket per visitatori anonimi, Redis per backend e utenti loggati. L’hit rate complessivo arriva al 98%+.

Gestisci i siti WordPress dei tuoi clienti?

AgencyPilot ti dà report AI, uptime monitoring, backup e portale clienti in un’unica dashboard. Gratis per 3 siti.

Prova gratis
Leggi anche
Tutti gli articoli
Tutti gli articoli