* 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>
39 lines
1014 B
TypeScript
39 lines
1014 B
TypeScript
import { getGlobalRedisCacheConnection } from './index';
|
|
import { addLog } from '../system/log';
|
|
import { retryFn } from '@fastgpt/global/common/system/utils';
|
|
|
|
export enum CacheKeyEnum {
|
|
team_vector_count = 'team_vector_count'
|
|
}
|
|
|
|
export const setRedisCache = async (
|
|
key: string,
|
|
data: string | Buffer | number,
|
|
expireSeconds?: number
|
|
) => {
|
|
return await retryFn(async () => {
|
|
try {
|
|
const redis = getGlobalRedisCacheConnection();
|
|
|
|
if (expireSeconds) {
|
|
await redis.set(key, data, 'EX', expireSeconds);
|
|
} else {
|
|
await redis.set(key, data);
|
|
}
|
|
} catch (error) {
|
|
addLog.error('Set cache error:', error);
|
|
return Promise.reject(error);
|
|
}
|
|
});
|
|
};
|
|
|
|
export const getRedisCache = async (key: string) => {
|
|
const redis = getGlobalRedisCacheConnection();
|
|
return await retryFn(() => redis.get(key));
|
|
};
|
|
|
|
export const delRedisCache = async (key: string) => {
|
|
const redis = getGlobalRedisCacheConnection();
|
|
await retryFn(() => redis.del(key));
|
|
};
|