Files
Momento/memento-note/lib/redis.ts
Antigravity 495f9a631b
Some checks failed
CI / Lint, Test & Build (push) Successful in 12m40s
CI / Deploy production (on server) (push) Has been cancelled
fix: force deployment, support REDIS_URL/REDIS_HOST, and fix vector deserialization
2026-05-19 22:00:19 +00:00

45 lines
1.2 KiB
TypeScript

import Redis from 'ioredis';
const globalForRedis = globalThis as unknown as { redis?: Redis };
const redis =
globalForRedis.redis ??
(process.env.REDIS_URL
? new Redis(process.env.REDIS_URL, {
lazyConnect: true,
retryStrategy(times) {
if (times > 10) {
console.error('[redis] Max retries exceeded, will retry in 30s');
return 30000;
}
return Math.min(times * 200, 2000);
},
maxRetriesPerRequest: 3,
})
: new Redis({
host: process.env.REDIS_HOST ?? 'localhost',
port: parseInt(process.env.REDIS_PORT ?? '6379'),
password: process.env.REDIS_PASSWORD,
lazyConnect: true,
retryStrategy(times) {
if (times > 10) {
console.error('[redis] Max retries exceeded, will retry in 30s');
return 30000;
}
return Math.min(times * 200, 2000);
},
maxRetriesPerRequest: 3,
}));
redis.on('error', (err) => {
console.error('[redis] Connection error:', err.message);
});
redis.on('connect', () => {
console.log('[redis] Connected');
});
if (process.env.NODE_ENV !== 'production') globalForRedis.redis = redis;
export { redis };