From 66f9cb8d25209defc1746486f3330da5047c4775 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Tue, 30 Jul 2024 18:31:57 +0000 Subject: [PATCH] feat: support redis sentinel --- packages/backend/src/config/app.js | 7 +++++++ packages/backend/src/config/redis.js | 20 ++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/config/app.js b/packages/backend/src/config/app.js index fa291616..9f91bd1c 100644 --- a/packages/backend/src/config/app.js +++ b/packages/backend/src/config/app.js @@ -66,10 +66,17 @@ const appConfig = { appSecretKey: process.env.APP_SECRET_KEY || '', serveWebAppSeparately, redisHost: process.env.REDIS_HOST || '127.0.0.1', + redisName: process.env.REDIS_NAME || 'mymaster', redisPort: parseInt(process.env.REDIS_PORT || '6379'), redisUsername: process.env.REDIS_USERNAME, redisPassword: process.env.REDIS_PASSWORD, + redisDb: parseInt(process.env.REDIS_DB || '0'), + redisRole: process.env.REDIS_ROLE || 'master', redisTls: process.env.REDIS_TLS === 'true', + redisSentinelHost: process.env.REDIS_SENTINEL_HOST, + redisSentinelUsername: process.env.REDIS_SENTINEL_USERNAME, + redisSentinelPassword: process.env.REDIS_SENTINEL_PASSWORD, + redisSentinelPort: parseInt(process.env.REDIS_SENTINEL_PORT || '26379'), enableBullMQDashboard: process.env.ENABLE_BULLMQ_DASHBOARD === 'true', bullMQDashboardUsername: process.env.BULLMQ_DASHBOARD_USERNAME, bullMQDashboardPassword: process.env.BULLMQ_DASHBOARD_PASSWORD, diff --git a/packages/backend/src/config/redis.js b/packages/backend/src/config/redis.js index 45d007ea..09f0ced5 100644 --- a/packages/backend/src/config/redis.js +++ b/packages/backend/src/config/redis.js @@ -1,14 +1,30 @@ import appConfig from './app.js'; const redisConfig = { - host: appConfig.redisHost, - port: appConfig.redisPort, username: appConfig.redisUsername, password: appConfig.redisPassword, + db: appConfig.redisDb, enableOfflineQueue: false, enableReadyCheck: true, }; +if (appConfig.redisSentinelHost) { + redisConfig.sentinels = [ + { + host: appConfig.redisSentinelHost, + port: appConfig.redisSentinelPort, + } + ]; + + redisConfig.sentinelUsername = appConfig.redisSentinelUsername; + redisConfig.sentinelPassword = appConfig.redisSentinelPassword; + redisConfig.name = appConfig.redisName; + redisConfig.role = appConfig.redisRole; +} else { + redisConfig.host = appConfig.redisHost; + redisConfig.port = appConfig.redisPort; +} + if (appConfig.redisTls) { redisConfig.tls = {}; }