WordPress alimenta un’enorme fetta del web, ma la sua popolarità mette in primo piano la sfida di dover mantenere prestazioni ottimali. Una soluzione efficace per migliorare le prestazioni di WordPress è implementare la cache degli oggetti di Redis. L’utilizzo di questo database chiave-valore in memoria come cache riduce il numero di query inviate al database principale di un sito.

Questa guida mostra come installare e utilizzare la cache degli oggetti Redis per un sito WordPress. Per i clienti di Kinsta, il processo è particolarmente semplice.

Il caching degli oggetti

Quando si carica una pagina di WordPress, il server deve effettuare diverse query al database per recuperare i contenuti, le impostazioni e gli altri dati di cui ha bisogno per mostrare la pagina. Ogni query richiede del tempo e, man mano che il sito cresce, questi piccoli ritardi possono trasformarsi in rallentamenti evidenti.

La cache degli oggetti aiuta memorizzando i risultati di queste query al database. La cache memorizza le query usate spesso e aspetta fino a quando se ne ha bisogno.

Il caching degli oggetti può trasformare il modo in cui un sito WordPress gestisce il recupero e l’elaborazione dei dati e l’impatto va oltre il semplice miglioramento della velocità. Quando un sito subisce improvvisi picchi di traffico, come ad esempio durante una campagna di marketing di successo o dopo un post virale sui social media, Redis può fare da cuscinetto tra i visitatori e il database.

Invece di far sì che ogni visitatore attivi nuove query al database, Redis servirà i dati in cache dalla memoria. In questo modo un sito può gestire un numero significativamente maggiore di utenti simultanei su tutto il sito senza che le prestazioni si riducano.

Per un sito di e-commerce durante il Black Friday, le informazioni sui prodotti memorizzate nella cache di Redis potrebbero ridurre il carico del database e permettere al sito di gestire un volume di traffico maggiore senza richiedere ulteriori risorse del server. Questa efficienza si traduce direttamente in un risparmio sui costi di hosting, in quanto è possibile servire più visitatori con l’infrastruttura esistente.

Come WordPress utilizza il suo database

Capire il modo in cui WordPress interagisce con il suo database può aiutare a spiegare perché il caching diventa fondamentale quando un sito cresce. Pensiamo a cosa succede quando qualcuno visita la home page di un sito. A meno che non stia rispondendo con i risultati della cache della pagina, WordPress orchestra una complessa sinfonia di query al database per costruire una pagina dinamica.

La home page di Kinsta presenta un servizio di hosting WordPress gestito su uno sfondo rosso scuro e nero con motivi geometrici. In basso sono presenti due pulsanti di invito all'azione con le diciture View features e View pricing.
La home page principale del sito Kinsta.

Vediamo un tipico caricamento della home page: per prima cosa, WordPress interroga la tabella wp_options per recuperare le impostazioni del sito, la configurazione del tema e i plugin attivi.

L'interfaccia di gestione del database SequelAce mostra la tabella wp_options di un'installazione di WordPress. La tabella contiene impostazioni di configurazione del sistema con colonne per option_id, option_name e option_value. Sono visibili varie impostazioni di WordPress, tra cui lo stato predefinito dei commenti, le impostazioni di ping, i formati delle date e le configurazioni dei template.
La tabella wp_options all’interno dell’applicazione SequelAce.

Se ci sono dei widget, dei blocchi o degli elementi in più nella barra laterale, questo attiverà delle query aggiuntive. Ad esempio, una sezione di post recenti avrà bisogno dei dati dei post, le categorie avranno bisogno del conteggio dei termini e qualsiasi funzionalità di ricerca avrà bisogno di costruire un indice.

L'interfaccia dell'editor del sito WordPress mostra un template di post con una sezione di titolo, un'area di byline dell'autore e una spiegazione del blocco di contenuto. Sul lato destro è presente un elenco di categorie popolari che mostra vari termini della tassonomia con il conteggio dei post tra parentesi. L'interfaccia include le impostazioni per la visualizzazione delle categorie come menu a discesa, la visualizzazione dei conteggi dei post e le opzioni di gerarchia.
Modifica della barra laterale nell’Editor del sito WordPress.

Se si usa un plugin di page builder o un tema altrimenti complesso, queste query si moltiplicheranno in modo significativo. La complessità aumenta con i contenuti dinamici. Prendiamo ad esempio un blog in cui i post mostrano le informazioni sull’autore, le categorie, i tag e i post correlati:

Un post del blog all'interno dell'Editor del sito che mostra il testo latino
Il layout di un post di un blog nell’Editor del sito WordPress.

L’anteprima di ogni post sulla home page richiede a WordPress di unire i dati di più tabelle. Prende il contenuto principale da wp_posts, prende i dettagli dell’autore da wp_users e raccoglie i metadati da wp_postmeta. Una home page che mostra solo dieci anteprime di post potrebbe eseguire decine di query separate al database.

I colli di bottiglia del database di WordPress

L’architettura del database rivela anche i comuni colli di bottiglia che influiscono sulle prestazioni. I tipi di post personalizzati, pur essendo efficaci per organizzare i contenuti, spesso devono affidarsi a wp_postmeta per memorizzare campi aggiuntivi.

Alcuni siti web – pensiamo a un negozio online o a un elenco di immobili – potrebbero effettuare centinaia di query per ogni caricamento di pagina solo per visualizzare ogni prodotto o proprietà. Ognuno di essi deve mostrare dettagli individuali come metratura, quantità, prezzi, camere da letto, variazioni e altro ancora come voci di metadati separate.

La tabella wp_options può diventare un altro collo di bottiglia. Infatti, è qui che vengono memorizzate le impostazioni di tutti i plugin che le offrono.

L’impatto diventa più marcato se si considerano i visitatori simultanei. Ogni utente attiverà la propria serie di query e WordPress effettuerà un’elaborazione indipendente per ognuna di esse. Durante i picchi di traffico, questa elaborazione può creare un collo di bottiglia che rallenta l’intero sito.

Queste interazioni con il database rendono la cache preziosa. Se si implementa correttamente la cache degli oggetti Redis può intercettare queste query ripetute e memorizzare i risultati. Invece di eseguire molteplici join e query di metadati per ogni visitatore, WordPress può recuperare i dati pre-elaborati direttamente da Redis. Il risultato è che spesso può ridurre decine di query al database a un’unica ricerca nella cache.

Scelte popolari per il caching degli oggetti di WordPress

Per quanto riguarda le soluzioni di caching degli oggetti per WordPress, sono disponibili diverse opzioni. Non tutti gli host supportano tutte le opzioni, il che significa che bisogna assicurarsi che la cache degli oggetti che si sceglie sia in grado di soddisfare le proprie esigenze.

Memcached è uno dei sistemi di caching più vecchi e più utilizzati. Si tratta di un sistema di caching a memoria distribuita semplice ed efficace. Grazie alla sua longevità, gode di un ampio supporto ed è generalmente leggero per quanto riguarda l’utilizzo delle risorse. Con un buon supporto e una buona documentazione, Memcached è una soluzione popolare per il caching degli oggetti a tutti i livelli.

La home page del progetto Memcached mostra un'intestazione caratteristica con personaggi di coniglietti in stile cartone animato in bianco con accenti turchesi. Il contenuto principale spiega che Memcached è un sistema di caching della memoria distribuito, gratuito e open-source. La pagina include una sezione Quick Example con esempi di codice, una dimostrazione Play with telnet e una sezione Supported By.
Il sito web di Memcached.

Data l’attenzione alla facilità d’uso, gli scenari più complessi potrebbero non essere adatti a questo semplice archivio chiave-valore. Inoltre non offre una memorizzazione “persistente”, il che significa che si cancellerà al caricamento della pagina successiva.

Couchbase può offrire una soluzione più complessa che combina le funzionalità di un database di documenti, le tipiche funzionalità di archiviazione chiave-valore e il clustering integrato. Quest’ultima tecnologia automatizza il raggruppamento dei dati per migliorare le prestazioni, in modo simile a come il Deframmentatore di dischi di Windows lavora per migliorare le prestazioni del disco del sistema operativo.

La landing page di Couchbase mostra una campagna di marketing rivolta agli utenti di MongoDB, con il titolo Realm regret? Passa a Couchbase Mobile. Sul lato destro dello schermo viene visualizzato un editor di codice che mostra un esempio di query SQL per la ricerca di scarpe. Nella parte inferiore della pagina sono visualizzati i loghi di importanti aziende, tra cui DirectTV, Equifax, GE, PayPal e PepsiCo.
Il sito web di Couchbase.

Tuttavia, l’archiviazione chiave-valore di Couchbase è secondaria rispetto alla sua architettura basata sui documenti. Questo potrebbe essere un problema se si ha bisogno di minori limitazioni nelle query e di una maggiore precisione nella validazione e coerenza dei dati.

Perché Redis ha una marcia in più per WordPress

Per WordPress, Redis offre diversi vantaggi rispetto alla concorrenza diretta. A differenza di Memcached, Redis supporta strutture di dati complesse come liste, set e set ordinati. Questo si allinea bene con le esigenze di organizzazione dei dati di WordPress e dà la possibilità di scalare verso configurazioni più grandi e complesse.

Quando si tratta di utilizzare queste diverse strutture, l'”operazione atomica” di Redis è fondamentale. In poche parole, questa operazione utilizza il concetto di transazione e raggruppa diversi comandi da eseguire in una sola volta. La funzionalità vera e propria è più complessa, ma le operazioni atomiche garantiscono in genere la coerenza dei dati, un aspetto fondamentale per qualsiasi sito web WordPress.

Ci sono altri due vantaggi nell’utilizzo di Redis con WordPress:

  • Persistenza. Redis è in grado di persistere i dati su disco. Questo garantisce una migliore durata dei dati rispetto a una soluzione in-memory.
  • Migliore gestione della memoria. Redis offre opzioni di gestione della memoria più sofisticate rispetto ad altri strumenti di caching. Questo permette di controllare meglio il comportamento della cache degli oggetti.

Redis ha applicazioni che vanno al di là del caching degli oggetti, ma per WordPress, la composizione unica della soluzione di database significa che la sua archiviazione chiave-valore è quasi un partner ideale.

Il rapporto tra WordPress e Redis

WordPress include una propria funzionalità di caching degli oggetti attraverso la funzione WP_Object_Cache. Questa funzione agisce come un livello intermedio tra il codice del sito e il database, utilizzando funzioni standardizzate per gestire i dati in cache.

Quando un plugin o un tema richiede dei dati, WordPress controlla innanzitutto se questi esistono nella cache degli oggetti utilizzando queste funzioni integrate. Ad esempio, ecco il codice che recupera il numero di commenti di un utente:

function get_user_comment_count($user_id) {
    // Generate a unique cache key
    $cache_key = 'user_comment_count_' . $user_id;
    
    // Try to get the value from cache first
    $comment_count = wp_cache_get($cache_key, 'user-stats');
    
    // If not in cache, query the database
    if (false === $comment_count) {
        global $wpdb;
        $comment_count = $wpdb->get_var(
            $wpdb->prepare(
                "SELECT COUNT(*) FROM $wpdb->comments WHERE user_id = %d",
                $user_id
            )
        );
        
        // Store the result in cache for future requests
        wp_cache_set($cache_key, $comment_count, 'user-stats', 3600); // Cache for 1 hour
    }
    
    return $comment_count;
}

Se configurata correttamente con Redis, la funzione intercetta le richieste al database e controlla se i dati richiesti esistono nella cache di Redis prima che WordPress effettui una query al database.

L’integrazione va oltre la semplice memorizzazione delle coppie chiave-valore. La capacità di Redis di gestire strutture di dati complesse rispecchia l’organizzazione gerarchica dei contenuti di WordPress. Ad esempio, quando WordPress deve recuperare i risultati di una query complessa, come tutte le pagine figlie di una pagina madre con i relativi metadati, Redis memorizza l’intera struttura di dati come un’unica voce della cache.

Questa integrazione potrebbe migliorare notevolmente le prestazioni. Redis memorizza tutti i dati in memoria, il che significa che i tempi di accesso sono espressi in microsecondi anziché in millisecondi, come avviene di solito per le query sui database. Non sembra un valore aggiunto, ma per i siti che fanno un uso intensivo del database, questa differenza potrebbe portare a tempi di caricamento delle pagine due o tre volte più veloci.

La cache a oggetti di WordPress supporta anche funzionalità avanzate di Redis attraverso una configurazione aggiuntiva. Ad esempio, è possibile implementare i tag della cache per una gestione più granulare della cache:

function get_category_posts($category_id) {
    $cache_key = 'category_posts_' . $category_id;
    
    $posts = wp_cache_get($cache_key, 'category-posts');
    
    if (false === $posts) {
        $posts = get_posts(array(
            'category' => $category_id,
            'posts_per_page' => 10
        ));
        
        wp_cache_set(
            $cache_key,
            $posts,
            'category-posts',
            3600,
            array(
                'tags' => array(
                    'category_' . $category_id,
                    'front_page_content'
                )
            )
        );
    }
    
    return $posts;
}

// Later, when a post in this category updates:
wp_cache_delete_by_tag('category_' . $category_id);

Questa relazione tra WordPress e Redis crea un potente sistema di cache che gestisce in modo intelligente la persistenza dei dati, mantenendone la coerenza. La funzione WP_Object_Cache garantisce che tutti i plugin e temi possano beneficiare della cache di Redis senza richiedere un’implementazione diretta. Inoltre, le funzionalità avanzate di Redis offrono la flessibilità necessaria per le installazioni complesse di WordPress.

I clienti di Kinsta possono installare Redis in meno di 5 minuti

Prendiamo in esame uno scenario tipico: il nostro negozio WooCommerce rallenta con l’aumento del traffico. Presso molti web host, l’implementazione di Redis comporta l’accesso al server, l’installazione manuale, la configurazione delle impostazioni di sicurezza e un’attenta verifica. Tutto questo potrebbe richiedere una giornata di lavoro tecnico, e anche di più se si verificano degli errori. L’implementazione di Redis di Kinsta trasforma completamente questo processo.

È possibile aggiungere la cache degli oggetti Redis con pochi clic nella dashboard di MyKinsta per 100 dollari al mese. I clienti possono andare su siti WordPress > nome del sito > Add-on > Cache Redis (o siti WordPress > nome del sito > Cache > Redis) e cliccare sul pulsante Abilita:

Una schermata che mostra la voce cache di Redis tra i componenti aggiuntivi disponibili nella dashboard di MyKinsta.
L’add-on per la cache di Redis si trova nella dashboard di MyKinsta.

L’integrazione di Kinsta può avere un grande impatto su un sito e sulle sue prestazioni:

  • Applica una configurazione ottimale per i siti web WordPress. Questo include la regolazione dei tempi di scadenza della cache, per i casi in cui i problemi di abbandono del carrello potrebbero essere problematici. L’ottimizzazione dei tempi di scadenza è un problema comune che può affliggere le installazioni Redis non correttamente configurate.
  • L’integrazione di Redis funziona silenziosamente in background. È decisamente una buona notizia, perché si può continuare a gestire il sito beneficiando delle prestazioni offerte dalla cache degli oggetti.
  • È possibile di monitorare la cache degli oggetti in modo flessibile e avere una profonda integrazione con le funzionalità e l’architettura di Kinsta.

L’integrazione con gli altri strumenti di MyKinsta è un enorme vantaggio, in quanto Redis diventa parte integrante della strategia di caching. Anche il monitoraggio dell’impatto delle prestazioni è un aspetto fondamentale da considerare.

Come implementare Redis per un sito web Kinsta

La configurazione iniziale della cache degli oggetti Redis con il proprio sito WordPress ospitato da Kinsta è veloce. Quando si attiva il componente aggiuntivo, Kinsta installa e configura automaticamente il plugin Redis Object Cache. Questo riduce la necessità di ulteriori impostazioni e configurazioni. C’è anche la possibilità di utilizzare un altro plugin di connessione se lo si desidera, anche se sarà necessario disabilitare il plugin Redis Object Cache dall’interno di WordPress, cliccando sul link Disattiva nel gruppo del plugin all’interno della bacheca di amministrazione di WordPress:

Il database di amministrazione di WordPress mostra un primo piano delle informazioni del plugin Redis Object Cache. L'interfaccia mostra le opzioni di disattivazione e di impostazione, con una descrizione che indica che si tratta di un backend persistente per la cache degli oggetti che supporta sentinel, clustering e WP-CLI.
La pagina dei plugin di WordPress e il plugin Redis Object Cache.

Gran parte della gestione dell’installazione di Redis avviene sul sito WordPress attraverso le impostazioni del plugin. Questo include la cancellazione della cache. Il plugin Kinsta MU aggiunge questa opzione alla barra degli strumenti di WordPress:

L'intestazione della dashboard di amministrazione di WordPress mostra gli indicatori di notifica e l'etichetta Object Cache nella barra degli strumenti nera. Sotto di essa si trova un widget Redis Object Cache che mostra le metriche delle prestazioni, comprese le colonne Time, Bytes, Ratio e Calls, con una lettura di 5 ms visibile.
La bacheca di amministrazione di WordPress mostra l’opzione Object Cache nella barra degli strumenti.

Tuttavia, ci sono alcuni modi per svuotare la cache di Redis al di fuori di WordPress. Ad esempio, andando su siti WordPress > nome del sito > Cache > Cache del server di MyKinsta sarà possibile raggiungere questo obiettivo:

La pagina delle impostazioni della cache del server nella dashboard di MyKinsta. Include schede per Edge Caching, CDN, Server Caching e Redis. L'interfaccia spiega che la cache migliora i tempi di caricamento del sito memorizzando i dati del sito e include opzioni per cancellare la cache o modificare le impostazioni di scadenza della cache. Una barra laterale di sinistra consente di navigare verso altre impostazioni, come Domini, Backup e Strumenti.
La schermata Server Caching all’interno della dashboard di MyKinsta.

Questa opzione svuota tutte le cache utilizzate dal sito, così come gli approcci alternativi che utilizzano Secure Shell (SSH) e WP-CLI.

Come installare Redis su altri host WordPress

Sebbene Redis sia un metodo popolare per impostare una cache di oggetti, non tutti gli host ne offrono l’accesso o l’integrazione. Questo significa che potreste aver bisogno di sporcarvi le mani con del codice sul vostro server.

Ogni web host avrà un approccio diverso a questa operazione; alcuni potrebbero anche non fornire l’accesso root necessario. Tuttavia, i passaggi tipici includono la preparazione del server, l’installazione di Redis e la configurazione di WordPress per utilizzarlo.

Preparazione e installazione del server

L’installazione di Redis richiede un ambiente server correttamente configurato. Per alcuni host WordPress, questo può significare scegliere un piano adeguato. È probabile che non sia possibile farlo con il tipico hosting condiviso o addirittura con i piani gestiti. Un server privato virtuale (VPS) sarà il punto di partenza per le vostre operazioni, ma l’hosting cloud dedicato sarà l’ideale.

In ogni caso, la vostra installazione PHP avrà bisogno dell’estensione phpredis. L’installazione di quest’ultima consente a Redis di lavorare con PHP, il che è essenziale per lavorare anche con WordPress. Dovrete utilizzare flag di compilazione e opzioni di configurazione specifiche, che sono numerose.

Sui sistemi Ubuntu, potrete installare i componenti necessari con:

sudo apt-get update
sudo apt install redis server

Una volta completato il processo di installazione, eseguite sudo service redis status per verificare che Redis stia funzionando nel modo previsto. Potreste anche eseguire redis-cli --version per verificare che l’installazione venga completata come previsto.

Quando Redis sarà in esecuzione sul server, potrete installare l’estensione phpredis:

sudo apt-get install php-redis
sudo phpenmod redis

Questo è tutto ciò che dovrete fare per installare Redis, ma dovrete comunque configurarlo in base al vostro server e alle risorse disponibili.

Configurazione di Redis

Il file di configurazione del server Redis richiede la vostra attenzione prima che iniziate a lavorare sul vostro sito. Il primo compito è capire se WordPress e Redis lavorano sullo stesso server. In genere è questo il caso, quindi è necessario effettuare il binding dell’indirizzo localhost (127.0.0.1).

Potete scegliere qualsiasi editor per accedere al file di configurazione di Redis, ma nano è perfetto e sarà disponibile su quasi tutti i server che troverete:

sudo nano /etc/redis/redis.conf

Nella maggior parte dei casi, potete trovare la riga giusta e decommentarla prima di salvare le modifiche:

bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6

Potreste voler apportare ulteriori modifiche a questo file di configurazione. Ecco una configurazione ottimale per i siti WordPress:

maxmemory 256mb
maxmemory-policy allkeys-lru
appendonly yes
appendfsync everysec
save 900 1
save 300 10
save 60 10000

Ogni scelta di configurazione ha uno scopo specifico:

  • L’impostazione maxmemory di 256 MB rappresenta un buon punto di partenza per la maggior parte delle installazioni di WordPress. Questa impostazione impedisce a Redis di consumare una quantità eccessiva di memoria di sistema, pur mantenendo uno spazio di cache sufficiente a migliorare le prestazioni in modo significativo.
  • L’impostazione allkeys-lru maxmemory-policy garantisce che i contenuti a cui si accede più frequentemente rimangano nella cache. Alcuni siti traggono vantaggio dall’impostazione volatile-lru, soprattutto quando si mettono in cache i dati di sessione insieme ai contenuti normali.
  • Le impostazioni appendonly e appendfsync gestiscono il comportamento di persistenza di Redis. Sebbene Redis serva principalmente come cache, il mantenimento della persistenza evita la perdita completa della cache durante i riavvii del server. L’impostazione everysec bilancia le prestazioni con la sicurezza dei dati.

Le direttive save controllano quando Redis crea istantanee point-in-time del dataset. La configurazione di esempio indica a Redis di salvare:

  • Ogni 15 minuti dopo una modifica.
  • Ogni 5 minuti dopo 10 modifiche.
  • Ogni minuto dopo 10.000 modifiche.

Queste impostazioni di persistenza aiutano a mantenere l’efficienza della cache e a proteggere dalla perdita di dati.

Configurare la sicurezza di Redis e testare le modifiche

Dovreste occuparvi anche della sicurezza. Ad esempio, potete impostare l’autenticazione tramite password utilizzando il comando requirepass e persino rinominare i comandi “pericolosi”. L’elenco di controllo degli accessi (ACL) di Redis pone delle limitazioni su alcuni comandi distruttivi e dovreste esaminare l’intero elenco per vedere se qualcuno potrebbe riguardarvi.

Una volta completati tutti questi passaggi, è bene testare le prestazioni del server Redis. La Redis CLI offre diversi comandi di benchmark a questo scopo:

redis-cli --latency
redis-cli info | grep used_memory_human
redis-cli info | grep connected_clients

In breve, questi comandi stabiliscono le metriche delle prestazioni di base per il monitoraggio continuo e dovrebbero far parte del vostro regolare flusso di manutenzione.

Configurare WordPress

Una volta che Redis è in esecuzione sul server, WordPress deve essere configurato per utilizzarlo come cache di oggetti. La configurazione di solito include l’indicazione dei dettagli della connessione a Redis, come l’host, la porta e le credenziali di autenticazione.

È possibile aggiungere manualmente il file di drop-in per la cache degli oggetti alla directory wp-content, anche se il modo migliore per ottenere questo risultato è installare un plugin dedicato alla cache degli oggetti di Redis. L’unico che vi consigliamo è il plugin Redis Object Cache menzionato sopra, poiché Kinsta non supporta molti plugin di cache a causa delle sue stesse funzionalità. Il plugin Redis Object Cache è più che altro un aiuto per collegare WordPress all’archivio chiave-valore.

Gestione di Redis oltre l’installazione

Le tipiche installazioni di Redis Object Cache forniscono l’accesso alla CLI di Redis. In Kinsta, questo si estende a tutto il flusso di lavoro di sviluppo, come ad esempio gli ambienti di staging e DevKinsta.

Monitoraggio fondamentale

Questa interfaccia a riga di comando offre potenti funzionalità per connettersi alla propria istanza Redis e ottenere una visione immediata del funzionamento della cache. Ad esempio, si possono scoprire i modelli di dati in cache, analizzare l’utilizzo della memoria ed eseguire attività di manutenzione in tempo reale.

Per il monitoraggio di base, ci sono alcuni comandi essenziali da tenere in considerazione:

redis-cli INFO stats           # View cache hits and misses
redis-cli INFO memory         # Check memory utilization
redis-cli MONITOR            # Watch live cache operations

Il comando MONITOR trasmette le operazioni di cache in tempo reale, mostrando esattamente come WordPress interagisce con Redis. Questa visibilità aiuta a identificare i modelli di cache e le opportunità di ottimizzazione. Il comando SLOWLOG identifica le query problematiche:

redis-cli SLOWLOG GET 10     # View the 10 slowest recent operations
redis-cli SLOWLOG RESET      # Clear the slow log for fresh monitoring

Avete a disposizione opzioni che estendono di parecchio ciò che Redis può offrire.

Comandi di monitoraggio di Redis più approfonditi

Un modo semplice per controllare le risorse è monitorare i limiti di connessione di Redis. È un modo eccellente per prevenire l’esaurimento delle risorse:

redis-cli CLIENT LIST | wc -l    # Count active connections
redis-cli CONFIG GET maxclients  # Check maximum allowed connections

WordPress utilizza Redis per velocizzare l’accesso in lettura al suo database. Le voci della cache sono persistenti e possono essere memorizzate nella cache anche in futuro. A tal fine, Redis supporta le “politiche di sfratto” per le chiavi memorizzate.

Tuttavia, questo può comportare degli svantaggi sotto forma di pressione sulla memoria. Un basso “hit ratio” – che mette a confronto il numero totale di operazioni con quelle sulle chiavi esistenti – ne è la prova, quindi monitorare le seguenti metriche potrebbe essere fondamentale:

redis-cli INFO stats | grep evicted_keys
redis-cli INFO stats | grep hit_rate

Se scoprite che il vostro database soffre di pressione sulla memoria, potete scegliere di aumentare la memoria disponibile, ottimizzare le politiche di scadenza delle chiavi e implementare strategie di caching selettive. L’approccio esatto che adotterete dipenderà dal vostro sito e dalla pressione che subisce la memoria.

Usare una GUI con Redis

C’è molto altro da scoprire con i comandi di Redis e con l’uso della CLI, anche se per alcuni non sarà uno strumento adatto. In questo caso può essere utile l’applicazione Redis Insight.

L'interfaccia di gestione del database Redis Insight, a tema scuro, elenca più istanze dello stack Redis in esecuzione su diverse porte localhost (6379, 12001, 7777, 8102, 8103, 8100 e 8101). Ogni istanza è contrassegnata come Standalone e include vari moduli Redis come RedisSearch, RedisJSON, RedisGraph, RedisTimeSeries e RedisBloom.
L’applicazione Redis Insight GUI.

Offre un’interfaccia grafica per visualizzare la cache degli oggetti Redis senza dover ricorrere a un terminale, all’accesso al server o alla riga di comando. Come per la visualizzazione del database di WordPress con uno strumento come TablePlus o SequelAce, un’applicazione come Redis Insight è veloce da configurare e può semplificare il vostro flusso di lavoro.

Problemi e soluzioni comuni di Redis

Nella maggior parte dei casi, l’installazione di Redis funzionerà senza bisogno di ulteriore manutenzione. Tuttavia, alcune implementazioni di Redis possono presentare problemi che richiedono la vostra attenzione. Ad esempio, in MyKinsta potreste vedere un avviso che segnala che WordPress non è in grado di rilevare un plugin di connessione adeguato.

Questo avviso compare quando si sceglie di utilizzare un plugin diverso da Redis Object Cache e nella maggior parte dei casi può essere ignorato. Tuttavia, tenete presente che il funzionamento ottimale di Redis si basa su un plugin di connessione adeguato.

Ad esempio, potreste non vedere le giuste metriche quando analizzate lo strumento APM di Kinsta (o altre statistiche di Kinsta). Questo dovrebbe essere un problema semplice contrastare e risolvere se scegliete di creare un’istanza Redis personalizzata con Kinsta.

È anche una buona idea capire i limiti dell’integrazione di Redis con Kinsta. Ad esempio, potreste riscontrare diversi errori se utilizzate un tipo di installazione di WordPress non tipica. L’utilizzo di un’installazione Bedrock è un motivo comune di errore e il team di supporto Kinsta può aiutarvi a risolverlo.

Riepilogo

Il caching a oggetti di Redis offre potenti miglioramenti delle prestazioni dei siti WordPress grazie a un’efficiente archiviazione e recupero dei dati. Il successo sta nell’implementazione corretta, nel monitoraggio regolare e nella manutenzione. L’utilizzo della soluzione gestita di Kinsta permette di lavorare secondo questi principi per garantire prestazioni ottimali del sito.

Ogni fase dell’implementazione di Redis si basa su quella precedente. Innanzitutto, comincia con una corretta configurazione del server. Poi, aggiunge l’integrazione di WordPress. Infine, il miglioramento delle prestazioni può essere mantenuto attraverso un monitoraggio e un’ottimizzazione regolari. Questo approccio vi aiuterà a creare una solida infrastruttura di caching che cresce insieme al vostro sito, con Kinsta alla base.

Avete avuto qualche problema che l’implementazione di Kinsta con la cache degli oggetti Redis ha risolto o potrebbe risolvere? Raccontatecelo nella sezione commenti qui sotto!

Steve Bonisteel Kinsta

Steve Bonisteel è un Technical Editor di Kinsta che ha iniziato la sua carriera di scrittore come giornalista della carta stampata, inseguendo ambulanze e camion dei pompieri. Dalla fine degli anni '90 si occupa di tecnologia legata a Internet.