0
v-firecrawl/apps/api/src/services/redis.ts
2024-04-15 17:01:47 -04:00

39 lines
1013 B
TypeScript

import Redis from 'ioredis';
// Initialize Redis client
const redis = new Redis(process.env.REDIS_URL);
/**
* Set a value in Redis with an optional expiration time.
* @param {string} key The key under which to store the value.
* @param {string} value The value to store.
* @param {number} [expire] Optional expiration time in seconds.
*/
const setValue = async (key: string, value: string, expire?: number) => {
if (expire) {
await redis.set(key, value, 'EX', expire);
} else {
await redis.set(key, value);
}
};
/**
* Get a value from Redis.
* @param {string} key The key of the value to retrieve.
* @returns {Promise<string|null>} The value, if found, otherwise null.
*/
const getValue = async (key: string): Promise<string | null> => {
const value = await redis.get(key);
return value;
};
/**
* Delete a key from Redis.
* @param {string} key The key to delete.
*/
const deleteKey = async (key: string) => {
await redis.del(key);
};
export { setValue, getValue, deleteKey };