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} The value, if found, otherwise null. */ const getValue = async (key: string): Promise => { 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 };