redis.config.php: allow to configure redis.cluster

Signed-off-by: Simon L. <szaimen@e.mail.de>
This commit is contained in:
Simon L. 2026-01-09 15:18:43 +01:00
parent 759cab0a6b
commit 29b115a03c
2 changed files with 30 additions and 4 deletions

View file

@ -138,8 +138,8 @@ RUN set -ex; \
} > /usr/local/etc/php/conf.d/nextcloud.ini; \
\
{ \
echo 'session.save_handler = redis'; \
echo 'session.save_path = "tcp://${REDIS_HOST}:${REDIS_PORT}?database=${REDIS_DB_INDEX}${REDIS_USER_AUTH}&auth[]=${REDIS_HOST_PASSWORD}"'; \
echo 'session.save_handler = rediscluster'; \
echo 'session.save_path = "seed[]=${REDIS_HOST}:${REDIS_PORT}&seed[]=${REDIS_HOST_2}:${REDIS_PORT_2}&seed[]=${REDIS_HOST_3}:${REDIS_PORT_3}&seed[]=${REDIS_HOST_4}:${REDIS_PORT_4}&seed[]=${REDIS_HOST_5}:${REDIS_PORT_5}&seed[]=${REDIS_HOST_6}:${REDIS_PORT_6}&seed[]=${REDIS_HOST_7}:${REDIS_PORT_7}&seed[]=${REDIS_HOST_8}:${REDIS_PORT_8}&seed[]=${REDIS_HOST_9}:${REDIS_PORT_9}&timeout=0&read_timeout=0&failover=error&persistent=1&auth=${REDIS_HOST_PASSWORD}&stream[verify_peer]=0"'; \
echo 'redis.session.locking_enabled = 1'; \
echo 'redis.session.lock_retries = -1'; \
echo 'redis.session.lock_wait_time = 10000'; \

View file

@ -1,5 +1,5 @@
<?php
if (getenv('REDIS_HOST')) {
if (!getenv('REDIS_HOST_2')) {
$CONFIG = array(
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
@ -17,7 +17,33 @@ if (getenv('REDIS_HOST')) {
$CONFIG['redis']['dbindex'] = (int) getenv('REDIS_DB_INDEX');
}
if (getenv('REDIS_USER_AUTH') !== false) {
if (getenv('REDIS_USER_AUTH')) {
$CONFIG['redis']['user'] = str_replace("&auth[]=", "", getenv('REDIS_USER_AUTH'));
}
} else {
$CONFIG = array(
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis.cluster' => array(
'password' => (string) getenv('REDIS_HOST_PASSWORD'),
'timeout' => 0.0,
'read_timeout' => 0.0,
'failover_mode' => \RedisCluster::FAILOVER_ERROR,
'seeds' => array(
getenv('REDIS_HOST') . ':' . (string)getenv('REDIS_PORT'),
getenv('REDIS_HOST_2') . ':' . (string)getenv('REDIS_PORT_2'),
getenv('REDIS_HOST_3') . ':' . (string)getenv('REDIS_PORT_3'),
getenv('REDIS_HOST_4') . ':' . (string)getenv('REDIS_PORT_4'),
getenv('REDIS_HOST_5') . ':' . (string)getenv('REDIS_PORT_5'),
getenv('REDIS_HOST_6') . ':' . (string)getenv('REDIS_PORT_6'),
getenv('REDIS_HOST_7') . ':' . (string)getenv('REDIS_PORT_7'),
getenv('REDIS_HOST_8') . ':' . (string)getenv('REDIS_PORT_8'),
getenv('REDIS_HOST_9') . ':' . (string)getenv('REDIS_PORT_9'),
),
),
);
if (getenv('REDIS_USER_AUTH')) {
$CONFIG['redis.cluster']['user'] = str_replace("&auth[]=", "", getenv('REDIS_USER_AUTH'));
}
}