// Shared Redis client for cache handler and ingester import Redis from "ioredis"; /** @type {import('ioredis').Redis | null} */ let redis = null; /** * @returns {import('ioredis').Redis} */ export function getRedis() { if (!redis) { redis = new Redis(process.env.REDIS_URL || "redis://localhost:6379", { maxRetriesPerRequest: 3, lazyConnect: true, }); redis.on("error", (err) => { console.error("[redis] connection error:", err.message); }); redis.on("connect", () => { console.log("[redis] connected"); }); } return redis; } /** * @returns {Promise} */ export async function closeRedis() { if (redis) { await redis.quit(); redis = null; } } // Constants export const CACHE_PREFIX = "inlay:cache:"; export const INDEX_PREFIX = "inlay:idx:";