28 lines
709 B
JavaScript
28 lines
709 B
JavaScript
require('dotenv').config();
|
|
const debug = require('debug')('soundbirder:cache');
|
|
const redis = require('redis');
|
|
[redisHost, redisPort] = [process.env.REDIS_HOST, process.env.REDIS_PORT];
|
|
const redisClient = redis.createClient(redisPort, redisHost);
|
|
|
|
(async () => {
|
|
redisClient.connect();
|
|
})();
|
|
|
|
function cacheResponse(request, response) {
|
|
debug("Caching response", request);
|
|
redisClient.set(request, JSON.stringify(response));
|
|
}
|
|
|
|
async function getCached(request) {
|
|
debug("Getting cached response", request);
|
|
const cached = await redisClient.get(request);
|
|
if (cached) {
|
|
return JSON.parse(cached);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
module.exports = {
|
|
cacheResponse,
|
|
getCached
|
|
} |