_redis.js 1.5 KB
Newer Older
Y
yinpengxiao 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
/*
 * @Author: 尹鹏孝
 * @Date: 2021-09-03 09:15:37
 * @LastEditTime: 2021-09-03 10:36:24
 * @LastEditors: Please set LastEditors
 * @Description: redis缓存
 * @FilePath: \koa2-test-api\src\cache\_redis.js
 */

const redis = require('redis');
const REDIS = require('../config/config.js');
const redisClient = redis.createClient(REDIS.redis.port, REDIS.redis.host)

redisClient.on("error", function (error) {
    if (error) {
        console.error('redis错误:', error);
    }
});
redisClient.on("connect", function (error) {

    if (!error) {
        console.error('redis链接设置成功');
    }
});

/**
 * redis设置
 * @param {string} key 键 
 * @param {*} val 值
 * @param {*} timeout 超时时间 
 */
function set(key, val, timeout = 60 * 60) {
    if (typeof val === 'object') {
        val = JSON.stringify(val);
    }
    console.log('输出要设置的内容:', Buffer.from(val, 'utf-8'));
    redisClient.set(key, Buffer.from(val, 'utf-8'));
    redisClient.expire(key, timeout);
}

function get(key) {
    return new Promise((resolve, reject) => {
        redisClient.get(key, (err, val) => {
            if (err) {
                reject(err);
                return
            }
            if (val == null) {
                resolve(val);
                return
            }
            try {
                console.log('输出redis查询的内容:', JSON.parse(val));
                resolve(JSON.parse(val))
            } catch (error) {
                resolve(val);
            }


        })
    })
}

module.exports = {
    get,
    set
}