SMsoft – informatica e dintorni

Memorizzare le sessioni PHP in memcached

Come sicuramente saprete (se state leggendo questo post) PHP utilizza le sessioni (dei files su disco) per mantenere informazioni relative alla navigazione di ogni utente. Questo permette ad esempio di poter “passare” da una pagina all’altra del sito delle informazioni (es i privilegi di accesso) senza che questi dati vengano ogni volta inviati al browser e rimandati al server: il server li conserva nel file delle sessioni e li recupera ogni volta che viene richiamata una nuova pagina dallo stesso utente.

Questo meccanismo però non funziona se si utilizzano più server web “dietro” un load-balancer, perché ovviamente ogni server web avrebbe il suo file delle sessioni che non conterrebbe le informazioni degli altri server. Una soluzione molto rudimentale e poco performante, potrebbe essere quella di utilizzare una condivisione NFS per conservare i files delle sessioni per tutti i server. C’è però una soluzione molto più efficiente, scalabile e performante: memorizzare le sessioni in memcached

Memcached è un sistema di memory caching distribuito ad alte prestazioni; generalmente viene utilizzato per velocizzare siti web, effettuando il caching dei dati del database.

Molti grandi siti web utilizzano memcached per ottimizzare le prestazioni.

Per installare memcached (il servizio di caching) nel nostro server Debian basterà:

Ora possiamo installare l’estensione memcache (le classi per l’accesso a memcached) per PHP:

e modifichiamo le impostazioni PHP (php.ini) da:

a :

Fatto. Riavviamo apache e le sessioni verranno memorizzate nel server memcached.

Nota:

consiglio anche la lettura di questa pagina che descrive come usare l’estensione php-memcached al posto di php-memcache.

enjoy!




Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario :-)
*
Taggato su: , ,

Commenti

Page optimized by WP Minify WordPress Plugin