From 674f8ddd415ff4faf100ff35cf2511f84f60fea9 Mon Sep 17 00:00:00 2001 From: kontrollanten <6680299+kontrollanten@users.noreply.github.com> Date: Wed, 10 May 2023 09:52:50 +0200 Subject: feat(server): add redis sentinel support (#5593) * feat(server): add redis sentinel support closes #5141 * Styling --------- Co-authored-by: Chocobozzz --- server/lib/redis.ts | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'server/lib') diff --git a/server/lib/redis.ts b/server/lib/redis.ts index 3706d2228..8430b2227 100644 --- a/server/lib/redis.ts +++ b/server/lib/redis.ts @@ -32,7 +32,8 @@ class Redis { if (this.initialized === true) return this.initialized = true - logger.info('Connecting to redis...') + const redisMode = CONFIG.REDIS.SENTINEL.ENABLED ? 'sentinel' : 'standalone' + logger.info('Connecting to redis ' + redisMode + '...') this.client = new IoRedis(Redis.getRedisClientOptions('', { enableAutoPipelining: true })) this.client.on('error', err => logger.error('Redis failed to connect', { err })) @@ -56,10 +57,25 @@ class Redis { this.prefix = 'redis-' + WEBSERVER.HOST + '-' } - static getRedisClientOptions (connectionName?: string, options: RedisOptions = {}): RedisOptions { + static getRedisClientOptions (name?: string, options: RedisOptions = {}): RedisOptions { + const connectionName = [ 'PeerTube', name ].join('') + const connectTimeout = 20000 // Could be slow since node use sync call to compile PeerTube + + if (CONFIG.REDIS.SENTINEL.ENABLED) { + return { + connectionName, + connectTimeout, + enableTLSForSentinelMode: CONFIG.REDIS.SENTINEL.ENABLE_TLS, + sentinelPassword: CONFIG.REDIS.AUTH, + sentinels: CONFIG.REDIS.SENTINEL.SENTINELS, + name: CONFIG.REDIS.SENTINEL.MASTER_NAME, + ...options + } + } + return { - connectionName: [ 'PeerTube', connectionName ].join(''), - connectTimeout: 20000, // Could be slow since node use sync call to compile PeerTube + connectionName, + connectTimeout, password: CONFIG.REDIS.AUTH, db: CONFIG.REDIS.DB, host: CONFIG.REDIS.HOSTNAME, -- cgit v1.2.3