    const redis = require("redis");
    const config = require('../etc/config.json')
    const redis_help ={}
    const redis_config = config.redis_config
    const client = redis.createClient();

    client.on('error', (err) => {
        console.error('Redis Client Error', err);
    });
  
    redis_help.isInit = false
    
    redis_help.setKeyValue = function(key, value) {
        return client.set(key, value+"").then((status)=>{
            if(status=="OK"){
                // console.log("写入成功！",status,key,value)
            }else{
                console.error("redis_help.setKeyValue 失败",status,key,value)
            }
        }).catch((e)=>{
            console.error("redis_help.setKeyValue 失败",e,key,value)
        });
    }


    redis_help.getKeyValue = function(key) {
        return client.get(key).then((value)=>{
            if(value!=undefined&&value!=null){
                // console.log("获取成功",value)
            }else{
                // console.error("redis_help.getKeyValue 失败",value,key)
                return null
            }
            return value
        }).catch((e)=>{
            // console.error("redis_help.getKeyValue error 失败",e,key)
            return null
        });
    }

    redis_help.setKeyWithExpiry = function(key, value, expiryInSeconds) {
        return new Promise((resolve, reject) => {
            client.setex(key, expiryInSeconds, value, (err, reply) => {
                if (err) reject(err);
                resolve(reply);
            });
        });
    }


    redis_help.deleteKey = function(key) {
        return client.del(key).then(()=>{}).catch(()=>{});
    }

    redis_help.connect = function(call_back){
        if(redis_help.isInit){
            call_back(true)
        }else{
            client.connect(redis_config).then(async () => {
                console.log('Connected to Redis');
                redis_help.isInit = true
                call_back(true)
            }).catch((err) => {
                call_back(false)
                console.error('Failed to connect to Redis', err);
            }
        );
        }
   
    }
    module.exports = redis_help;