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 { 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 { try { let result = await this.redis.del(key); return result; } catch (error) { return null; } } }