feat: implement Redis client and plugin with basic operations
This commit is contained in:
28
src/vm/plugins/redis.plugin.ts
Normal file
28
src/vm/plugins/redis.plugin.ts
Normal 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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user