From 655ec610fcce8dd7748f10772d520bdff4f7c78e Mon Sep 17 00:00:00 2001 From: Arne Rief Date: Fri, 19 Dec 2025 20:03:03 +0100 Subject: Basic setup & login --- backend/src/database/redis.ts | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 backend/src/database/redis.ts (limited to 'backend/src/database/redis.ts') 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; -- cgit v1.2.3