const Redis = require('ioredis'); let redisClient = null; function initRedis() { const host = process.env.REDIS_HOST || '10.99.0.3'; const port = process.env.REDIS_PORT || 6379; const password = process.env.REDIS_PASSWORD || ''; const redisOptions = { host, port, password, retryStrategy: (times) => { // Reconecta exponencialmente com limite de 3 segundos const delay = Math.min(times * 50, 3000); return delay; } }; if (process.env.REDIS_USER) { redisOptions.username = process.env.REDIS_USER; } redisClient = new Redis(redisOptions); redisClient.on('connect', () => { console.log(`✅ Conectado ao DragonflyDB/Redis em ${host}:${port}`); }); redisClient.on('error', (err) => { // Silencia o erro de autenticação para não floodar o log, já que não temos a senha correta if (!err.message.includes('WRONGPASS') && !err.message.includes('NOAUTH')) { console.error('❌ Erro de conexão no DragonflyDB/Redis:', err.message); } }); } function getClient() { if (!redisClient) { initRedis(); } return redisClient; } module.exports = { initRedis, getClient };