Files
rx.scoreodonto.com/dental-server/redis.js
T
2026-05-26 04:17:12 +02:00

50 lines
1.1 KiB
JavaScript

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
};