Create redis module

This commit is contained in:
Apher 2026-07-16 20:48:58 +00:00
commit 0493631d22
2 changed files with 42 additions and 0 deletions

4
redis/config/index.js Normal file
View File

@ -0,0 +1,4 @@
module.exports = {
REDIS_HOST: process.env.REDIS_HOST,
REDIS_PORT: process.env.REDIS_PORT
}

38
redis/index.js Normal file
View File

@ -0,0 +1,38 @@
const config = require('./config');
const Redis = require('redis');
const redis = {};
redis.client = Redis.createClient({
url: `redis://default@${config.REDIS_HOST}:${config.REDIS_PORT}`
});
redis.connect = async () => {
await redis.client.connect().catch(console.error);
}
redis.quit = async () => {
await redis.client.quit();
}
redis.ensureGroup = async (stream, group) => {
await redis.connect();
try {
await redis.client.xGroupCreate(stream, group, "0", {MKSTREAM: true});
console.log(`Created consumer group: ${group} (${stream})`);
} catch (err) {
if (err) {
if (err.message.includes('BUSYGROUP')) {
console.log(`Consumer group already exists: ${group} (${stream})`);
} else {
console.error(err);
}
}
}
}
module.exports = {
redis
}