kutt/server/redis.js

51 lines
1.0 KiB
JavaScript
Raw Permalink Normal View History

2024-08-11 18:41:03 +03:30
const Redis = require("ioredis");
2024-08-11 18:41:03 +03:30
const env = require("./env");
2020-01-30 18:51:52 +03:30
2024-10-21 14:59:55 +03:30
let client;
if (env.REDIS_ENABLED) {
client = new Redis({
host: env.REDIS_HOST,
port: env.REDIS_PORT,
db: env.REDIS_DB,
...(env.REDIS_PASSWORD && { password: env.REDIS_PASSWORD })
});
}
2024-08-11 18:41:03 +03:30
const key = {
2025-01-07 22:01:20 +03:30
link: (address, domain_id) => `l:${address}:${domain_id || ""}`,
domain: (address) => `d:${address}`,
stats: (link_id) => `s:${link_id}`,
host: (address) => `h:${address}`,
user: (idOrKey) => `u:${idOrKey}`
2020-01-30 18:51:52 +03:30
};
2024-08-11 18:41:03 +03:30
const remove = {
domain: (domain) => {
2020-01-30 18:51:52 +03:30
if (!domain) return;
return client.del(key.domain(domain.address));
2020-01-30 18:51:52 +03:30
},
2024-08-11 18:41:03 +03:30
host: (host) => {
2020-01-30 18:51:52 +03:30
if (!host) return;
return client.del(key.host(host.address));
2020-01-30 18:51:52 +03:30
},
2024-08-11 18:41:03 +03:30
link: (link) => {
2020-01-30 18:51:52 +03:30
if (!link) return;
return client.del(key.link(link.address, link.domain_id));
2020-01-30 18:51:52 +03:30
},
2024-08-11 18:41:03 +03:30
user: (user) => {
2020-01-30 18:51:52 +03:30
if (!user) return;
return Promise.all([
client.del(key.user(user.id)),
client.del(key.user(user.apikey)),
]);
2020-01-30 18:51:52 +03:30
}
};
2024-08-11 18:41:03 +03:30
module.exports = {
client,
key,
remove,
}