fix: redis cache expiration not working
Some checks failed
Build and Publish Docker Image / build-publish (push) Has been cancelled

This commit is contained in:
Jemma Poffinbarger 2025-01-06 20:10:05 -06:00
parent c87def593f
commit 5a1cc6e583
2 changed files with 617 additions and 613 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,53 +1,55 @@
/* eslint-disable @typescript-eslint/explicit-function-return-type */
/* eslint-disable @typescript-eslint/no-var-requires */
const redis = require('redis');
const logger = require('./logger');
const config = require('../config.json');
const { host, port } = config.redis;
const redisClient = redis.createClient({
url: `redis://${host}:${port}`
});
redisClient.on('error', (error) => {
logger.error(error);
});
redisClient.on('connect', () => {
logger.success('Redis connected');
});
async function setValue(key, value, expireTime) {
if (!redisClient.isOpen) {
return false;
}
await redisClient.set(key, value, 'EX', expireTime);
return true;
}
async function getValue(key) {
if (!redisClient.isOpen) {
return false;
}
const result = await redisClient.get(key);
return result;
}
async function removeValue(key) {
if (!redisClient.isOpen) {
return false;
}
await redisClient.del(key);
return true;
}
module.exports = {
redisClient,
setValue,
getValue,
removeValue
/* eslint-disable @typescript-eslint/explicit-function-return-type */
/* eslint-disable @typescript-eslint/no-var-requires */
const redis = require('redis');
const logger = require('./logger');
const config = require('../config.json');
const { host, port } = config.redis;
const redisClient = redis.createClient({
url: `redis://${host}:${port}`
});
redisClient.on('error', (error) => {
logger.error(error);
});
redisClient.on('connect', () => {
logger.success('Redis connected');
});
async function setValue(key, value, expireTime) {
if (!redisClient.isOpen) {
return false;
}
await redisClient.set(key, value, 'EX', expireTime);
// Seems to be a library bug, so we have to manually set the expire time
await redisClient.expire(key, expireTime);
return true;
}
async function getValue(key) {
if (!redisClient.isOpen) {
return false;
}
const result = await redisClient.get(key);
return result;
}
async function removeValue(key) {
if (!redisClient.isOpen) {
return false;
}
await redisClient.del(key);
return true;
}
module.exports = {
redisClient,
setValue,
getValue,
removeValue
};