Files
few-line-engine/src/redis/redis.service.ts

49 lines
983 B
TypeScript

import { RedisService } from "@liaoliaots/nestjs-redis";
import { Injectable } from "@nestjs/common";
import Redis from "ioredis";
@Injectable()
export class RedisClient {
private readonly redis: Redis | null;
constructor(private readonly redisService: RedisService) {
this.redis = this.redisService.getOrThrow();
}
async set(
key: string,
value: string,
expireInSeconds?: number
): Promise<"OK" | null> {
if (!this.redis) {
return null;
}
if (expireInSeconds) {
return await this.redis.set(key, value, "EX", expireInSeconds);
}
return await this.redis.set(key, value);
}
async get(key: string): Promise<string | null> {
if (!this.redis) {
return null;
}
return await this.redis.get(key);
}
async del(key: string): Promise<number | null> {
if (!this.redis) {
return null;
}
return await this.redis.del(key);
}
getClient(): Redis | null {
return this.redis;
}
}