====== Istanze multiple del database Redis ======
Il servizio Redis prevede il concetto di database multipli; l'installazione predefinita Debian 12 Bookworm prevede la creazione di 16 database distinti (numerati da 0 a 15) tramite l'opzione **databases 16** del file di configurazione ''/etc/redis/redis.conf''. Tuttavia tale concetto è molto diverso da quello di database dei motori SQL tradizionali (es. MySQL o PostgreSQL); se sullo stesso host si hanno diverse applicazioni che necessitano di un database Redis è opportuno creare **ulteriori istanze di Redis** piuttosto che condividere la stessa istanza.
Nel nostro esempio l'istanza predefinita di Redis (in ascolto su localhost:6379/TCP) viene [[rspamd_spamassassin|usata da Rspamd per gestire i propri moduli greylist e antivirus]]. Avendo installato Nextcloud abbiamo bisogno di una ulteriore istanza di Redis per gestire il //[[https://docs.nextcloud.com/server/28/admin_manual/configuration_files/files_locking_transactional.html|transactional file locking]]//.
Creare un file **/etc/redis/redis-nextcloud.conf** copiando l'originale **redis.conf**. Modificare le seguenti impostazioni:
port 0
unixsocket /run/redis/redis-nextcloud.sock
unixsocketperm 770
pidfile /run/redis/redis-nextcloud.pid
logfile /var/log/redis/redis-nextcloud.log
dbfilename dump-nextcloud.rdb
Abilitare e avviare il servizio:
systemctl enable redis-server@nextcloud.service --now
Verificare che sia possibile connettersi alla nuova istanza tramite Unix socket:
redis-cli -s /run/redis/redis-nextcloud.sock
redis /run/redis/redis-nextcloud.sock> ping
PONG
===== Configurazione di Nextcloud =====
adduser www-data redis
Dopo aver cambiato appartenenza al gruppo, riavviare i processi:
systemctl restart php8.2-fpm.service
systemctl restart apache2.service
Nel file di configurazione **[NEXTCLOUD_HOME]/config/config.php** si aggiungono gli opportuni valori alla variabile **$CONFIG**:
$CONFIG = array (
...
'filelocking.enabled' => true,
'memcache.local' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array (
'host' => '/run/redis/redis-nextcloud.sock',
'port' => 0,
'timeout' => 0.0,
),
);
===== Web References =====
* **[[https://sanjuroe.dev/multiple-redis-databases|Multiple Redis databases on Debian]]**
* **[[https://jasonschaefer.com/installing-nextcloud-v22-on-debian-v11/|Installing Nextcloud v22 on Debian v11 (buster) using Redis]]**