diff options
Diffstat (limited to 'backend/src/database/redis.ts')
| -rw-r--r-- | backend/src/database/redis.ts | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/backend/src/database/redis.ts b/backend/src/database/redis.ts new file mode 100644 index 0000000..06773b9 --- /dev/null +++ b/backend/src/database/redis.ts @@ -0,0 +1,49 @@ +import { createClient } from "redis"; + +const redisClient = createClient({ + username: process.env.REDIS_USER, + password: process.env.REDIS_PASSWORD, + socket: { + host: process.env.REDIS_HOST, + port: process.env.REDIS_PORT ? parseInt(process.env.REDIS_PORT) : 13080, + reconnectStrategy: (retries) => { + if (retries > 10) { + console.error("Redis Verbindunsversuche erschöpft."); + return new Error( + "Redis Verbindung nach 10 Versuchen Fehlgeschlagen." + ); + } + console.log(`Redis Verbindungsversuch ${retries} von 10`); + return 3000; + }, + }, +}); + +redisClient.on("error", (error) => { + console.error("Redis Fehler: ", error); +}); + +async function connectRedis() { + try { + await redisClient.connect(); + console.log("Erfolgreich mit Redis verbunden."); + } catch (error) { + // Server läuft ohne Cache weiter + console.error("Verbindung zu Redis fehlgeschlagen: ", error); + } +} + +await connectRedis(); + +export async function closeRedisConnection() { + try { + if (redisClient.isOpen) { + await redisClient.quit(); + console.log("Redis-Verbindung erfolgreich beendet."); + } + } catch (error) { + console.error("Fehler beim Beenden der Redis-Verbindung: ", error); + } +} + +export default redisClient; |
