Lo sapevi?

Hai mai considerato che scegliere ServerEasy per la gestione della tua rete aziendale potrebbe offrirti numerosi vantaggi, tra cui maggiore sicurezza, affidabilità e supporto esperto?

Caching lato server su VPS: configurare Redis, Memcached e opcache

Estimated reading: 4 minutes 16 views

Il caching lato server è uno dei fattori più importanti per le prestazioni di una VPS che ospita applicazioni web in PHP.
Molto spesso CPU, RAM e storage non sono il vero problema, ma sono il numero di operazioni ripetitive eseguite da PHP e dal database a rallentare il sistema.

Redis, Memcached e OPcache non sono alternative tra loro, ma tecnologie che agiscono su livelli diversi dello stack. Usati correttamente permettono di ridurre drasticamente i tempi di risposta, abbassare il carico del database e aumentare la stabilità del server sotto traffico reale.

In questa guida vedremo come funzionano, quando usarli e come configurarli in modo corretto su una VPS Linux (Ubuntu, Debian, AlmaLinux, Rocky e CentOS).

Come funziona il caching lato server

Quando una richiesta web arriva al server, Nginx o Apache la inoltrano a PHP-FPM. PHP interpreta i file, esegue query al database, costruisce dati in memoria e infine genera l’output HTML.

Senza cache questo processo viene ripetuto integralmente a ogni richiesta, anche se il contenuto non è cambiato.

Il caching lato server inserisce livelli di memoria tra PHP e il database, e tra PHP e il suo codice compilato, riducendo il lavoro che il server deve svolgere.

In uno stack PHP moderno i livelli sono tre:

Livello Tecnologia Cosa viene memorizzato
Codice PHP
OPcache
Script PHP già compilati
Dati applicativi
Redis
Oggetti, query, sessioni, dati strutturati
Dati temporanei
Memcached
Cache semplice in RAM

Queste tecnologie non si sovrappongono: OPcache accelera PHP stesso, Redis e Memcached accelerano l’accesso ai dati.

Redis e Memcached

Redis e Memcached sono entrambi sistemi di caching in RAM, ma hanno scopi diversi. Il primo è un database in memoria con strutture dati avanzate, persistenza su disco, supporto a transazioni, scadenze e replicazione. È progettato per essere una componente stabile dell’architettura di un’applicazione.

Memcached è una cache volatile e minimale. Non salva dati su disco, non ha strutture complesse e non garantisce persistenza. È pensato solo per alleggerire il carico del database memorizzando dati temporanei.

Installazione su Linux

Tutti i comandi seguenti funzionano sia su Ubuntu/Debian che su AlmaLinux/CentOS/Rocky, adattando il gestore di pacchetti.

Su Ubuntu e Debian:

				
					sudo apt update
sudo apt install redis-server memcached php-opcache php-redis php-memcached

				
			

Su AlmaLinux, Rocky e CentOS:

				
					sudo dnf install redis memcached php-opcache php-redis php-memcached

				
			

Dopo l’installazione è necessario avviare e abilitare i servizi:

				
					sudo systemctl enable redis memcached
sudo systemctl start redis memcached

				
			

Configurare OPcache per PHP

OPcache è incluso in PHP ed è il primo livello di caching da configurare.
Senza OPcache PHP ricompila gli script a ogni richiesta, sprecando CPU.

Il file di configurazione si trova in genere in:

  • /etc/php/*/fpm/conf.d/10-opcache.ini
  • oppure /etc/php.d/10-opcache.ini

Inserire o verificare queste direttive:

				
					opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
opcache.validate_timestamps=1
opcache.revalidate_freq=2

				
			

Questi valori sono sicuri e adatti alle VPS. La memoria è più che sufficiente per siti e applicazioni PHP di dimensioni medio-grandi.

Dopo la modifica riavviare PHP-FPM:

				
					sudo systemctl restart php-fpm

				
			

Configurare Redis per PHP

Redis viene eseguito come servizio e può essere utilizzato da PHP tramite l’estensione php-redis. Il file di configurazione principale è: /etc/redis/redis.conf

Per un uso come cache è consigliabile verificare:

				
					maxmemory 512mb
maxmemory-policy allkeys-lru

				
			

Queste opzioni impediscono a Redis di saturare tutta la RAM e fanno sì che i dati meno usati vengano eliminati automaticamente.

Dopo ogni modifica:

				
					sudo systemctl restart redis

				
			

PHP utilizzerà Redis tramite socket o TCP. La connessione via socket è più veloce e sicura. Di solito è disponibile in: /var/run/redis/redis.sock

Configurare Memcached per PHP

Memcached è più semplice. Il file di configurazione è in genere:

  • /etc/memcached.conf
  • oppure /etc/sysconfig/memcached

Un esempio di configurazione sicura:

				
					-m 256
-p 11211
-l 127.0.0.1

				
			

Questo limita la memoria a 256 MB e impedisce connessioni esterne.

Dopo le modifiche:

				
					sudo systemctl restart memcached

				
			

Verificare che tutto funzioni

Per OPcache:

				
					php -i | grep opcache

				
			

Per Redis:

				
					redis-cli info

				
			

Per Memcached:

				
					echo "stats" | nc 127.0.0.1 11211

				
			

Se questi comandi restituiscono dati, i servizi sono attivi e funzionanti.

Leave a Comment

Share this Doc

Caching lato server su VPS: configurare Redis, Memcached e opcache

Or copy link

CONTENTS