Memcache in Nextcloud è un sistema di caching utilizzato per migliorare le prestazioni dell’applicazione, riducendo il carico sul database e accelerando il recupero dei dati frequentemente richiesti. Funziona memorizzando temporaneamente informazioni in memoria RAM, anziché accedere ogni volta al database.
Tipi di Memcache supportati da Nextcloud:
APCu (Alternative PHP Cache User)
Ideale per il caching locale, usato quando Nextcloud è installato su un singolo server.
Memcached
Adatto per il caching distribuito o in ambienti con più server.
È più veloce di Redis per operazioni di lettura/scrittura.
Redis
Utilizzato sia per il caching che per la gestione delle sessioni di file locking in ambienti condivisi o distribuiti.
Consigliato per configurazioni complesse e multi-server.
Benefici dell’uso di Memcache in Nextcloud:
Riduzione dei tempi di risposta: I dati memorizzati nella cache sono più veloci da recuperare rispetto a quelli memorizzati nel database.
Minore carico sul database: Riduce il numero di query eseguite.
Esperienza utente migliorata: Le pagine e i file si caricano più velocemente.
PREREQUISITI
Installazione e Configurazione base di Nextcloud Community Edition su Ubuntu Server 24.04
INSTALLAZIONE DI APCU E REDIS
Personalmente consiglio di utilizzare APCu e Redis. Eseguire i passaggi seguenti per configurare memcache in Nextcloud:
Eseguire l’installazione di APCu e Redis con il comando:
0 1 2 |
sudo apt install php-apcu redis-server php-redis sudo service apache2 restart |
Modificare il file di configurazione con il comando:
0 |
sudo nano /etc/redis/redis.conf |
Individuare la riga seguente:
0 |
port 6379 |
Quindi sostituirla con la riga:
0 |
port 0 |
Cercare le righe:
0 1 |
# unixsocket /var/run/redis/redis.sock # unixsocketperm 700 |
quindi sostituirle con le seguenti:
0 1 |
unixsocket /var/run/redis/redis.sock unixsocketperm 770 |
Salvare e chiudere il file di configurazione
Aggiungere al gruppo www-data l’utente redis con il comando:
0 |
sudo usermod -a -G redis www-data |
Riavviare Apache con il comando:
0 |
sudo service apache2 restart |
Quindi avviare il servizio Redis con il comando:
Includere la configurazione di memorizzazione nella cache nel file di configurazione di Nextcloud con il comando:
0 |
sudo nano /var/www/html/config/config.php |
Aggiungere le righe seguenti subito dopo l’ultima riga e prima dell’ultima parentesi e del punto e virgola.
0 1 2 3 4 5 |
'memcache.local' => '\OC\Memcache\Redis', 'redis' => array ( 'host' => '/var/run/redis/redis.sock', 'port' => 0, 'timeout' => 1.5, ), |
Salvare e chiudere il file di configurazione
Abilitare Redis per l’avvio all’avvio del sistema, con il seguente comando:
0 |
sudo systemctl enable redis-server |
Dovremmo visualizzare il seguente output:
0 1 |
Synchronizing state of redis-server.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable redis-server |
Per ovviare al problema del database relativo ai transactional file locking aggiungere le seguenti righe all’ìinterno del file config.php:
0 1 2 3 4 5 6 7 |
'memcache.local' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, 'timeout' => 0.0, 'password' => '', // Optional, if not defined no password will be used. ), |
A questo punto Netxcloud utilizzerà Memcache sia per il database server che per le sessioni web.
0 commenti