Redis cache (#4436)

* perf: add Redis cache for vector counting (#4432)

* feat: cache

* perf: get cache key

---------

Co-authored-by: a.e. <49438478+I-Info@users.noreply.github.com>
This commit is contained in:
Archer
2025-04-02 22:05:42 +08:00
committed by archer
parent dc73f47486
commit c2e088cf39
5 changed files with 92 additions and 8 deletions

View File

@@ -1,8 +1,9 @@
import { addLog } from '../system/log';
import Redis from 'ioredis';
const REDIS_URL = process.env.REDIS_URL ?? 'redis://localhost:6379';
export function newQueueRedisConnection() {
export const newQueueRedisConnection = () => {
const redis = new Redis(REDIS_URL);
redis.on('connect', () => {
console.log('Redis connected');
@@ -11,9 +12,9 @@ export function newQueueRedisConnection() {
console.error('Redis connection error', error);
});
return redis;
}
};
export function newWorkerRedisConnection() {
export const newWorkerRedisConnection = () => {
const redis = new Redis(REDIS_URL, {
maxRetriesPerRequest: null
});
@@ -24,4 +25,19 @@ export function newWorkerRedisConnection() {
console.error('Redis connection error', error);
});
return redis;
}
};
export const getGlobalRedisCacheConnection = () => {
if (global.redisCache) return global.redisCache;
global.redisCache = new Redis(REDIS_URL, { keyPrefix: 'fastgpt:cache:' });
global.redisCache.on('connect', () => {
addLog.info('Redis connected');
});
global.redisCache.on('error', (error) => {
addLog.error('Redis connection error', error);
});
return global.redisCache;
};