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