Guida generale all’uso di memcached (ed agli hosting che lo supportano)

Guida generale all’uso di memcached (ed agli hosting che lo supportano)

In questa guida cercheremo di mettere in chiaro a cosa serve memcached, un modulo open source disponibile su alcuni tipi di hosting in grado di velocizzare il caricamento dei siti, e vedremo come sia possibile farne uso in svariati contesti.

Cos’è memcached?

memcached è un sistema ottimizzato di general purpose (ovvero slegato da architetture specifiche), utilizzato molto spesso per velocizzare i tempi di caricamento dei siti web dinamici. Esso sfrutta un sistema di cache database-driven, ovvero memorizza in RAM gli oggetti più frequentemente letti nel database, riducendo così enormente i tempi di caricamento delle singole pagine, specie quelle in cui ad esempio le query MySQL siano difficili o impossibili da ottimizzare. Memcached è un software free e open source, rilasciato sotto licenza BSD e disponibile su sistemi Unix, Linux e Windows.

memcached e PHP: verificare che sia presente

Per quanto riguarda l’ambito PHP, ci sono due moduli specifici che ne consentono l’uso:

Pubblicità
  • il primo è il modulo memcache, in grado di fornire all’utente un daemon (cioè un processo sempre attivo) che supporti le operazioni indicate in precedenza;
  • il secondo è il modulo memcached, in grado di fornire al programmatore le API utili al caso.

A livello pratico, per verificare se l’hosting su cui state facendo girare il vostro sito o la vostra applicazione supporti memcached, è necessario controllare che sia abilitata mediante la funzione phpinfo(), oppure verificare – nelle ultime versioni di PHP – che sia definita la classe Memcache:

if(class_exists('Memcache')){
 echo "memcached for PHP enabled";
}
else 
 echo "memcached for PHP NOT enabled";

phpinfo();

In ambito WordPress memcached può essere attivato per migliorare i tempi di caricamento delle pagine sfruttando il plugin di cache W3 Total, e selezionando memcached dalle opzioni vicino all’etichetta Page Cache Method.

memcached nel dettaglio

Tecnicamente il funzionamento del modulo memcached, che agisce come memoria a breve termine ed alleggerisce, se possibile, il carico di lavoro sul database, è il seguente: mediante una apposita API viene fornita al client una tabella di hash. Essa viene riempita progressivamente con i risultati delle query (ad esempio MySQL) effettuate più di frequente; in questo modo tutte le future richieste delle query più frequenti saranno risolte più rapidamente sfruttando risultati pre-memorizzati in precedenza.

Lo spazio disponibile per la tabella di hash di memcached è chiaramente limitato, per cui non appena essa viene riempita, sarà creato nuovo spazio cancellando i dati utilizzati meno di frequente (logica LRU). Una politica molto efficente in numerosi casi reali, e che rende possibile velocizzare di molto il tempo di caricamento dei dati dal database (query di SELECT).

Vantaggi e svantaggi

memcached offre un eccellente meccanismo di cache che, diversamente, sarebbe difficile da ottenere; i tempi di caricamento delle pagine, in genere, ne risultano essere giovati. La maggioranza dei CMS tra cui Joomla! e WordPress supportano questa caratteristica, e permettono di attivarla on demand anche via pannello Plesk o cPanel (ad esempio SiteGround fornisce un ottimo supporto con dei tutorial molto chiari).

Questo si paga, in genere, con il fatto che memcached potrebbe creare problemi ad alcune applicazioni – specie quelle in cui è necessario ricalcolare molto spesso il valore delle query di SELECT, presenta per natura un problema di volatilità delle informazioni presentate e, in generale, non è necessariamente supportata da documentazione completa ed adatta alle vostre esigenze.

memcached per il tuo hosting

Proprio per via di questa politica, quasi sempre gli hosting che usano memcached necessitano di un supplemento di RAM, certamente qualcosa in più rispetto a quanto consumerebbero normalmente: un’opzione valida per i casi in cui si voglia sfruttare memcached possono essere gli hosting dedicati oppure i VPS con una sufficente quantità di memoria RAM disponibile. Di solito, infatti, se memcached non è disponibile sul vostro hosting deve essere installato a parte, e le due tipologie di hosting appena citate (dedicati e VPS) sono quelle che tipicamente consentono di farlo.

Sugli hosting specifici, inoltre, le offerte di Siteground supportano il modulo in questione; ad oggi, da quello che ho potuto vedere, si tratta del miglior hosting per memcached disponibile sul mercato.

La lista degli hosting che supportano nativamente memcached, inoltre, è disponibile a questo link.

Siti che usano memcached

Tra i principali siti che usano (e vengono velocizzati da) memcached troviamo:

  • Wikipedia;
  • WordPress.com;
  • Flickr;
  • LiveJournal;

Per WordPress è anche disponibile il plugin Memcached, ma non viene aggiornato – al momento in cui scrivo – da circa un anno.

memcached e MySQL

La versione MySQL a partire dalla 5.6 ha messo a disposizione, tra l’altro, un pieno supporto a memcached, per cui qualsiasi hosting che disponga di almeno questo tipo di versione di db dovrebbe disporre, in linea di massima, del modulo in questione. Gli hosting con supporto a Prestashop, ad esempio, spesso tendono ad avvalersi di questo modulo per velocizzare i tempi di caricamento delle pagine web dell’e-commerce.

Per informazioni specifiche suggerisco, ovviamente, il sito ufficiale memcached.org (immagine tratta da wikimedia commons).

Ti piace questo articolo?

1 voto

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

Guida generale all’uso di memcached (ed agli hosting che lo supportano)

Votato 10 / 10, da 1 utenti