From fae903f3847ac2cfd2d2ae6b32f44cc1f51f5c99 Mon Sep 17 00:00:00 2001 From: Henry Date: Sun, 25 Jan 2026 21:01:58 +0000 Subject: [PATCH] feat: setup redis client --- apps/web/src/utils/redis.ts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 apps/web/src/utils/redis.ts diff --git a/apps/web/src/utils/redis.ts b/apps/web/src/utils/redis.ts new file mode 100644 index 00000000..fb4c405a --- /dev/null +++ b/apps/web/src/utils/redis.ts @@ -0,0 +1,34 @@ +import Redis from "ioredis"; + +import { env } from "~/env"; + +let redisClient: Redis | null = null; + +export function getRedisClient(): Redis | null { + if (redisClient) { + return redisClient; + } + + const redisUrl = env.REDIS_URL; + + if (!redisUrl) { + return null; + } + + redisClient = new Redis(redisUrl, { + maxRetriesPerRequest: 3, + enableReadyCheck: true, + lazyConnect: true, + }); + + return redisClient; +} + +export async function closeRedisClient(): Promise { + if (redisClient) { + await redisClient.quit(); + redisClient = null; + } +} + +