60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
import IORedis, * as ioredis from "ioredis";
|
|
import SKDataUtil from "./SKDataUtil";
|
|
import SKLogger from "./SKLogger";
|
|
|
|
export default class SKRedisUtil {
|
|
static redis: ioredis.Redis;
|
|
|
|
static launch() {
|
|
if (this.redis) {
|
|
return;
|
|
}
|
|
this.redis = new IORedis({
|
|
host: "127.0.0.1",
|
|
port: 6379,
|
|
password: "xy1024"
|
|
});
|
|
SKLogger.debug(`REDIS连接`);
|
|
}
|
|
|
|
static async setValue(key: string, value: any) {
|
|
let v: string = SKDataUtil.toJson(value,null);
|
|
try{
|
|
await this.redis.set(key, v);
|
|
}catch(error){
|
|
SKLogger.warn(`REDIS:设置[${key}=${v}]错误:${error}\n${error.stack}`);
|
|
}
|
|
};
|
|
|
|
static async setExpireValue(key: string, value: any,seconds:number) {
|
|
let v: string = SKDataUtil.toJson(value,null);
|
|
try{
|
|
await this.redis.setex(key,seconds,v)
|
|
}catch(error){
|
|
SKLogger.warn(`REDIS:设置[${key}=${v}:${seconds}秒]错误:${error}\n${error.stack}`);
|
|
}
|
|
};
|
|
|
|
static async getValue(key: any, valid?: number): Promise<any> {
|
|
try {
|
|
let result = await this.redis.get(key);
|
|
if (result == null) {
|
|
return valid;
|
|
}
|
|
result = SKDataUtil.jsonBy(result);
|
|
return result;
|
|
} catch (error) {
|
|
SKLogger.warn(`REDIS:获得[${key}错误:${error}\n${error.stack}`);
|
|
return valid;
|
|
}
|
|
}
|
|
|
|
static async delValue(key: string): Promise<Number> {
|
|
try {
|
|
let result = await this.redis.del(key);
|
|
return result;
|
|
} catch (error) {
|
|
return null;
|
|
}
|
|
}
|
|
} |