Plugin WordPress standalone per la gestione completa della cache Redis. Include il proprio drop-in object-cache.php, monitor attività in tempo reale, esplora chiavi, gestione gruppi cache, configurazione wp-config.php e preset ottimizzati per WooCommerce e YITH.
Nessuna dipendenza da terzi — si connette direttamente al server Redis tramite l'estensione phpredis.
- Drop-in
object-cache.phpproprietario con implementazione completa diWP_Object_Cache - Installazione, aggiornamento e rimozione direttamente dall'interfaccia admin
- Rilevamento automatico di drop-in esterni già installati
- Supporto serializzazione PHP e igbinary
- Gestione completa delle costanti
SRC_REDIS_*inwp-config.php - Connessione via TCP o Unix socket
- Selezione database (0-15) per isolamento siti
- Prefisso chiavi personalizzabile
- Test connessione in tempo reale
- Backup automatico prima di ogni modifica a wp-config.php
- Gruppi Non Persistenti: Configura gruppi che restano solo in RAM (essenziale per carrelli WooCommerce)
- Redis Hash Groups: Abilita Redis hashes per performance migliorate (riduce fino al 70% le chiamate Redis)
- Global Groups: Gestisci gruppi condivisi per installazioni multisite
- Imposta scadenze diverse per ogni gruppo cache
- Valori predefiniti per casi d'uso comuni
- Ottimizza memoria Redis evitando dati obsoleti
Carica rapidamente configurazioni ottimizzate per:
- WooCommerce Standard: Ottimizzato per ecommerce con carrello separato
- YITH Request a Quote: Configurazione sicura per YITH plugin
- Multi-Dominio (10 siti): TTL aggressivi per server con molti siti WooCommerce
- Blog/Magazine: Perfetto per siti content-heavy
- WordPress Multisite: Configurazione per network WordPress
- Prestazioni Massime: Cache aggressiva per massima velocità
Monitora le attività Redis in tempo reale con interfaccia dettagliata:
- Informazioni Server: Versione Redis, modalità, sistema operativo, uptime, porta
- Utilizzo Memoria: Memoria usata, picco, massimo, frammentazione, memoria Lua
- Client Connessi: Numero client connessi, bloccati, tracking
- Keyspace: Database utilizzati con conteggio chiavi e TTL medio
Visualizza i comandi Redis più utilizzati con:
- Filtro per nome comando (es: GET, SET, HGET)
- Ordinamento per chiamate, tempo totale o tempo medio
- Limitazione top 10/25/50 o tutti
- Codifica colori: lettura (verde), scrittura (giallo), info (blu)
Monitora le query Redis che superano la soglia configurata:
- Filtro per comando
- Filtro per durata minima (> 1ms, > 10ms, > 100ms)
- Timestamp, durata, comando completo e client
Browser completo per le chiavi memorizzate in Redis:
- Ricerca con Pattern: Usa
*come wildcard (es:wp_*:posts:*,*session*) - Filtro per Tipo: String, List, Set, Sorted Set, Hash, Stream
- Limite Risultati: 50, 100, 200, 500 chiavi
- Paginazione: Carica più risultati incrementalmente
Ispeziona qualsiasi chiave con modal dettagliata:
- Tipo, TTL, encoding interno, dimensione memoria
- Visualizzazione valore formattata:
- String: testo con JSON/PHP deserializzato automaticamente
- List: lista ordinata elementi
- Set: insieme elementi
- Sorted Set: tabella membro/score
- Hash: tabella campo/valore
- Stream: entries JSON formattate
- Eliminazione chiave singola con conferma
- Statistiche cache in tempo reale (hits, misses, hit rate)
- Test connessione Redis
- Info server Redis (versione, memoria, uptime)
- Svuota cache con un click
- WordPress 5.0 o superiore
- PHP 7.4 o superiore
- Estensione phpredis installata
- Redis server attivo (versione 4.0+ consigliata per funzionalità complete)
Nota: Questo plugin NON richiede WP Redis o altri plugin Redis — include il proprio drop-in object-cache.php.
- Scarica il plugin
- Carica la cartella nella directory
/wp-content/plugins/ - Attiva il plugin dal menu Plugin di WordPress
- Vai su Strumenti → Redis Manager
- Comprimi la cartella del plugin in un file .zip
- In WordPress, vai su Plugin → Aggiungi nuovo → Carica plugin
- Seleziona il file .zip e clicca "Installa ora"
- Attiva il plugin
- Vai su Strumenti → Redis Manager
-
Vai su Strumenti → Redis Manager
-
Configura la Connessione Redis (tab "Configurazione")
- Imposta host, porta e password se necessario
- Clicca "Testa Connessione" per verificare
- Clicca "Salva in wp-config.php" per scrivere le costanti
-
Installa il Drop-in
- Nella sezione drop-in, clicca "Installa Drop-in"
- Verifica che lo stato passi a "Installato"
-
Carica un Preset (consigliato per iniziare)
- Vai alla tab "Preset"
- Scegli "WooCommerce Standard" se usi WooCommerce
- Oppure "Blog/Magazine" per un sito standard
- Clicca "Carica Preset"
-
Salva e Verifica
- Clicca "Salva Configurazione"
- Monitora le statistiche per verificare che la cache funzioni
Il plugin gestisce queste costanti in wp-config.php:
| Costante | Descrizione | Default |
|---|---|---|
SRC_REDIS_HOST |
Host del server Redis | 127.0.0.1 |
SRC_REDIS_PORT |
Porta del server Redis | 6379 |
SRC_REDIS_SOCKET |
Path Unix socket (sovrascrive host/porta) | — |
SRC_REDIS_PASSWORD |
Password di autenticazione | — |
SRC_REDIS_DATABASE |
Indice database (0-15) | 0 |
SRC_REDIS_PREFIX |
Prefisso chiavi per isolamento | $table_prefix |
SRC_REDIS_MAXTTL |
TTL massimo in secondi (0 = illimitato) | 0 |
SRC_REDIS_TIMEOUT |
Timeout connessione in secondi | 1 |
SRC_REDIS_READ_TIMEOUT |
Timeout lettura in secondi | 1 |
SRC_REDIS_SERIALIZER |
Metodo serializzazione: php, igbinary |
php |
SRC_REDIS_DISABLED |
Disabilita Redis, usa solo RAM | false |
Inserisci un gruppo per riga. Raccomandati per WooCommerce:
wc_session_id
wc-session-id
woocommerce_session_id
cart
wc_cart
woocommerce_cart
Inserisci un gruppo per riga. Raccomandati:
post_meta
term_meta
user_meta
options
wc_var_prices
wc_attribute_taxonomies
IMPORTANTE per YITH Request a Quote: NON includere "options" se usi YITH Request a Quote! Le sessioni YITH sono salvate come WordPress options.
Formato: gruppo:secondi (uno per riga)
posts:3600
wc_var_prices:1800
options:7200
terms:7200
transient:3600
Valori di riferimento:
300= 5 minuti1800= 30 minuti3600= 1 ora7200= 2 ore86400= 1 giorno
- Vai su Strumenti → Redis Manager
- Clicca sulla tab "Monitor Attività"
- I dati vengono caricati automaticamente
- Abilita l'auto-refresh per aggiornamento ogni 10 secondi
- Comandi in Verde (READ): GET, HGET, SCAN — operazioni di lettura
- Comandi in Giallo (WRITE): SET, HSET, DEL — operazioni di scrittura
- Comandi in Blu (INFO): INFO, CONFIG — comandi informativi
- Durata Verde (<10ms): Performance normale
- Durata Gialla (10-100ms): Attenzione, query lenta
- Durata Rossa (>100ms): Query molto lenta, investigare
- Vai alla tab "Esplora Chiavi"
- Inserisci un pattern (default:
*per tutte) - Seleziona filtri opzionali (tipo, limite)
- Clicca "Cerca"
* — Tutte le chiavi
wp_* — Chiavi che iniziano con wp_
*:posts:* — Chiavi contenenti :posts:
*session* — Chiavi contenenti session
ATTENZIONE: L'eliminazione è irreversibile!
- Dalla lista: clicca "Elimina" sulla riga
- Dal modal dettagli: clicca "Elimina Chiave"
- Conferma l'eliminazione
- > 85% = Eccellente (verde)
- 70-85% = Buono (giallo)
- < 70% = Da ottimizzare (rosso)
Per server con più siti WordPress che condividono lo stesso server Redis, ogni sito deve avere un isolamento cache. Due approcci:
Assegna un database Redis diverso (0-15) a ogni sito tramite la tab "Configurazione":
| Sito | SRC_REDIS_DATABASE |
|---|---|
| sito1.com | 0 |
| sito2.com | 1 |
| sito3.com | 2 |
| ... | ... |
| sito15.com | 15 |
Se hai più di 16 siti, usa un prefisso unico per ciascuno:
define( 'SRC_REDIS_PREFIX', 'sito1_' );Per performance migliori su server locale:
define( 'SRC_REDIS_SOCKET', '/var/run/redis/redis.sock' );Quando si usa un socket, host e porta vengono ignorati.
Soluzione:
- Vai alla tab "Preset"
- Carica "WooCommerce Standard"
- Salva e svuota cache
- Testa con 2 browser: i carrelli devono essere separati
Soluzione:
- Vai alla tab "TTL Custom"
- Aggiungi scadenze ai gruppi principali:
posts:3600 options:3600 transient:1800 - Salva e monitora memoria nella tab "Monitor Attività"
Soluzione:
- Vai alla tab "Gruppi Cache"
- Aggiungi gruppi a "Redis Hash Groups":
post_meta term_meta user_meta options - Salva e svuota cache
- Monitora hit rate dopo 10 minuti
Soluzione:
- Vai alla tab "Monitor Attività"
- Scorri alla sezione "Slowlog"
- Analizza comandi con durata alta
- Pattern comuni problematici: KEYS, SCAN con pattern ampi
Soluzione:
- Vai alla tab "Esplora Chiavi"
- Usa pattern specifico: es.
*woocommerce* - Filtra per tipo se necessario
- Ispeziona valori per debug
Verifica:
- Plugin attivato?
- Hai permessi amministratore?
wp plugin list
wp plugin activate starter-redis-cache# Redis server attivo?
redis-cli ping # Deve rispondere: PONG
# phpredis installato?
php -m | grep redisSe phpredis non è presente, installalo:
# Debian/Ubuntu
sudo apt install php-redis && sudo systemctl restart php*-fpm
# CentOS/RHEL
sudo yum install php-redis && sudo systemctl restart php-fpmPossibili cause:
- Redis versione < 4.0 (MEMORY USAGE non disponibile)
- Permessi insufficienti su Redis (ACL)
- Timeout connessione
Verifica:
redis-cli INFO server | grep redis_version
redis-cli ACL WHOAMINon ci sono query che superano la soglia. Verifica la configurazione Redis:
redis-cli CONFIG GET slowlog-log-slower-than
# Default: 10000 (10ms)
# Per abbassare soglia a 1ms:
redis-cli CONFIG SET slowlog-log-slower-than 1000- Verifica che
wp-content/sia scrivibile dal webserver - Controlla che non esista già un
object-cache.phpdi un altro plugin - Se esiste un drop-in esterno, rimuovilo manualmente:
rm /percorso/wp-content/object-cache.php
- Verifica che
wp-config.phpsia scrivibile dal webserver - Il plugin crea un backup prima di ogni modifica
- Se il file ha un formato non standard, l'inserimento automatico potrebbe fallire
- Tutte le azioni richiedono capability
manage_options - AJAX protetto con nonce WordPress
- Input sanitizzati prima del salvataggio
- Output escaped nel rendering
- Eliminazione chiavi richiede conferma
- Backup automatico di wp-config.php prima delle modifiche
| Requisito | Versione |
|---|---|
| WordPress | 5.0+ |
| PHP | 7.4, 8.0, 8.1, 8.2, 8.3 |
| phpredis | Richiesto |
| Redis Server | 4.0+ (consigliato) |
| WooCommerce | Tutte le versioni recenti |
| YITH Request a Quote | Con preset dedicato |
| WordPress Multisite | Supportato |
- Fix: Corretto cursore iniziale SCAN per phpredis nell'esplora chiavi
- Fix: Guida Unix socket corretta nel tab configurazione
- Fix: Serializzatore default cambiato da
autoaphpper evitare mismatch tra SAPI - Fix: Validazione socket e messaggi errore migliorati nel test connessione
- Fix: DATABASE e PREFIX scritti sempre in wp-config.php
- Fix: Prevenuto autofill del browser nel campo host Redis
- Miglioramenti di stabilità e performance
- Release iniziale
- Drop-in object-cache.php integrato
- Gestione completa gruppi cache
- TTL personalizzati per gruppo
- 6 preset configurazioni
- Monitor attività Redis in tempo reale
- Esplora chiavi Redis con dettagli
- Configurazione Redis da interfaccia
- Gestione wp-config.php automatica
- Supporto WooCommerce e YITH
- Supporto multi-dominio e multisite
starter-redis-cache.php — File principale del plugin
drop-in/
object-cache.php — Drop-in WP_Object_Cache (Redis)
includes/
class-src-admin.php — Interfaccia admin e handler AJAX
class-src-config.php — Gestione costanti in wp-config.php
class-src-dropin.php — Installazione/rimozione drop-in
class-src-woocommerce.php — Integrazione WooCommerce
templates/
admin-page.php — Template pagina admin
assets/
js/admin.js — JavaScript interfaccia admin
css/admin.css — Stili interfaccia admin
Antonino Lumia
- GitHub: github.com/quakef4
- Repository: github.com/quakef4/Wp-redis-manager
Le contribuzioni sono benvenute! Per contribuire:
- Fai un fork del repository
- Crea un branch per la tua feature (
git checkout -b feature/NuovaFeature) - Committa le modifiche (
git commit -m 'Aggiunge NuovaFeature') - Pusha il branch (
git push origin feature/NuovaFeature) - Apri una Pull Request
Per segnalare bug o richiedere feature:
Questo progetto è rilasciato sotto licenza GPL v2 or later.