Überarbeitet am 8. September 2026.

Redis gehört bei vielen Nextcloud-Installationen inzwischen fast zur Grundausstattung. Früher hatte ich Redis vor allem eingebaut, weil die Galerie und andere Bereiche gefühlt schneller reagieren sollten. Heute würde ich das genauer formulieren: Für den lokalen Cache ist APCu normalerweise die bessere Wahl, Redis spielt seine Stärke vor allem beim verteilten Cache und beim Transactional File Locking aus.

Gerade das File Locking ist wichtig. Ohne Redis kann Nextcloud dafür die Datenbank verwenden, was unnötig Last erzeugt. Bei einer größeren oder stärker genutzten Instanz lohnt sich Redis deshalb sehr schnell.

Wenn du Nextcloud gerade erst aufsetzt, findest du in meinem Beitrag Was bietet Nextcloud 2026? einen Überblick. Für die Absicherung des Servers habe ich außerdem Nextcloud richtig absichern aktualisiert.

Was macht APCu und was macht Redis?

APCu ist ein sehr schneller lokaler Cache innerhalb von PHP. Nextcloud empfiehlt ihn für memcache.local. Redis eignet sich dagegen besonders für memcache.distributed und memcache.locking.

Auf einem typischen einzelnen Linux-Server sieht eine sinnvolle Kombination deshalb so aus:

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',

Für einen sehr kleinen privaten Server reicht laut Nextcloud auch nur APCu. Wer Redis aber ohnehin installiert hat oder die Datenbank beim File Locking entlasten möchte, kann Redis zusätzlich verwenden.

1. Redis und APCu unter Debian oder Ubuntu installieren

sudo apt update
sudo apt install redis-server php-redis php-apcu

Danach prüfe ich zuerst, ob Redis läuft:

systemctl status redis-server

Die PHP-Module kannst du ebenfalls kontrollieren:

php -m | grep -Ei 'redis|apcu'

Je nach Setup muss anschließend PHP-FPM oder der Webserver neu gestartet werden, damit die neu installierten PHP-Module geladen werden.

2. Redis lokal besser per Unix-Socket anbinden

Läuft Redis auf demselben Server wie Nextcloud, empfiehlt die aktuelle Nextcloud-Dokumentation einen Unix-Socket. Dadurch muss Redis nicht über TCP angesprochen werden.

In /etc/redis/redis.conf sollten die Socket-Einstellungen vorhanden beziehungsweise aktiviert sein:

unixsocket /run/redis/redis-server.sock
unixsocketperm 770

Damit der Webserver auf den Socket zugreifen darf, wird der typische Debian-Webserver-Nutzer www-data zur Redis-Gruppe hinzugefügt:

sudo usermod -a -G redis www-data
sudo systemctl restart redis-server

Danach muss auch der PHP-/Webserver-Prozess neu gestartet werden, damit die neue Gruppenmitgliedschaft greift.

3. Nextcloud config.php anpassen

Die Datei liegt bei einer klassischen Installation meistens unter:

/var/www/nextcloud/config/config.php

Innerhalb des bestehenden Konfigurationsarrays ergänze ich:

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',

'redis' => [
    'host' => '/run/redis/redis-server.sock',
    'port' => 0,
],

Wichtig: Nicht einfach einen zweiten 'redis' => [...]-Block anlegen, wenn bereits einer existiert. Dann muss der vorhandene Eintrag angepasst werden.

Alternative: Redis über 127.0.0.1

Wenn du keinen Unix-Socket nutzen möchtest, kann Redis lokal auch über TCP angesprochen werden:

'redis' => [
    'host' => '127.0.0.1',
    'port' => 6379,
],

Redis sollte dabei nicht ungeschützt am öffentlichen Netzwerk lauschen. Für eine reine lokale Nextcloud gibt es normalerweise keinen Grund, Port 6379 ins Internet freizugeben.

Brauche ich noch requirepass?

In meiner alten Anleitung hatte ich für Redis zwingend ein Passwort über requirepass eingerichtet. Das ist bei einer ausschließlich lokalen Verbindung über einen korrekt berechtigten Unix-Socket nicht zwingend erforderlich. Wer Redis über TCP oder zwischen mehreren Servern betreibt, sollte die Redis-Authentifizierung und Netzwerkkonfiguration dagegen bewusst absichern.

Ein festes Beispielpasswort gehört ohnehin nicht in eine Anleitung – und erst recht nicht in eine produktive config.php.

4. Konfiguration testen

Zuerst prüfe ich Redis selbst:

redis-cli ping

Bei einer TCP-Konfiguration sollte als Antwort PONG erscheinen. Beim Unix-Socket kannst du direkt den Socket angeben:

redis-cli -s /run/redis/redis-server.sock ping

Danach kontrolliere ich Nextcloud:

sudo -E -u www-data php /var/www/nextcloud/occ status

Zusätzlich lohnt sich ein Blick unter Administrationseinstellungen → Übersicht. Ist kein lokaler Cache konfiguriert oder stimmt etwas mit der Einrichtung nicht, meldet Nextcloud das dort normalerweise ziemlich deutlich.

APCu nicht zu klein dimensionieren

Ein Punkt, der bei größeren Instanzen schnell auffällt: Der Standardwert für den APCu-Speicher kann zu klein sein. Nextcloud nennt 128 MB als sinnvollen Startwert, wenn der Standard nicht reicht. Die Einstellung erfolgt in der passenden PHP-Konfiguration zum Beispiel über:

apc.shm_size=128M

Ob mehr nötig ist, hängt von Anzahl der Benutzer, Apps und PHP-Worker ab. Einfach blind auf mehrere Gigabyte hochdrehen würde ich nicht.

Was Redis nicht automatisch schneller macht

Redis ist kein Wunderknopf für eine langsame Nextcloud. Wenn PHP-FPM falsch dimensioniert ist, die Datenbank hängt, die Platte langsam ist oder Vorschaubilder den Server beschäftigen, wird Redis diese Probleme nicht plötzlich verschwinden lassen.

Seine größten Vorteile liegen in sauberem Caching und vor allem darin, die Datenbank beim Transactional File Locking zu entlasten. Zusammen mit APCu ergibt das für viele selbst gehostete Installationen eine sehr sinnvolle Kombination.

Wenn du deine Nextcloud generell überarbeitest, lohnt sich auch mein Artikel zum sicheren Verschieben des Nextcloud-Datenverzeichnisses per Bind Mount.

Weiterführend: Nextcloud-Dokumentation zu Memory Caching und Transactional File Locking.