feat: implement Redis client and plugin with basic operations

This commit is contained in:
Boris D
2025-09-22 16:50:03 +03:00
parent 5fbaca4659
commit 51f8b0d773
3 changed files with 66 additions and 0 deletions

View File

@ -1,5 +1,7 @@
import { DatabasePlugin } from "./plugins/database.plugin";
import { RedisPlugin } from "./plugins/redis.plugin";
export const PluginClass = {
DATABASE: DatabasePlugin,
REDIS: RedisPlugin,
};

View File

@ -0,0 +1,28 @@
import Redis from "ioredis";
import { Plugin } from "../plugin.class";
export class RedisPlugin extends Plugin {
constructor(name: string, private redisClient: Redis) {
super(name);
}
static init(
name: string,
config: { host: string; port: number }
): RedisPlugin {
const redisClient = new Redis({
host: config.host,
port: config.port,
});
return new RedisPlugin(name, redisClient);
}
async run(): Promise<Redis> {
return this.redisClient;
}
onFinish(): void {
this.redisClient.quit();
}
}