Make Your Nextcloud Docker Instance Fly: Add Redis Caching
There’s an array of tutorials online for boosting your Nextcloud Docker instance performance; some lead to dead ends, others are convoluted. Here’s a more straightforward approach.
Edit Your Compose File
Two edits are required:
- Add a link between the app container and the Redis container to enable communication.
- Include a Redis container in our stack.
version: '3'
[...]
app:
[...]
links:
- redis
[...]
redis:
image: redis:alpine
restart: always
command: redis-server --requirepass goodpassword
Note: While not thoroughly documented, it’s crucial to set a password for NC to accept your cache.
Edit Your config.php File
Utilize Redis for both file locking and local caching. Running APCu for caching while still running Redis for file locking is redundant. Moreover, Redis offers superior performance.
'memcache.local' => '\OC\Memcache\Redis',
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'redis',
'port' => 6379,
'timeout' => 0.0,
'password' => 'goodpassword',
),
Redeploy
A simple docker-compose up -d
should do the trick!
You should now notice a significant performance improvement and reduced system load on frequently accessed objects in the NC Photos gallery.
In the Nextcloud Administration settings panel, you should see an “All checks passed” message.