0
点赞
收藏
分享

微信扫一扫

Nodejs redis 简单封装

自由的美人鱼 2022-04-13 阅读 75
//encapsulation-redis.js文件

const redis = require('redis')// Version 4.0.6
class Redis{
    constructor() {
        this.client = redis.createClient()
        this.client.on('error', err => {
            console.log(err)
        })
    }
    //建立链接
    async connect() {
        await this.client.connect('6379','localhost',{})
    }
    qiut() {
        //断开链接
        this.client.quit()
    }
    //添加数据
    async set(key, value, time) {
        //判断value值是否是对象类型
        if (typeof value === 'object') {
            value = JSON.stringify(value)
        }
        //time为过期时间,可选
        time ? await this.client.set(key, value, {
            EX: time,
            NX: true
        }) : await this.client.set(key, value)
    }
    //获取数据
    async get(key) {
        return new Promise((resolve, reject) => {
            const data = this.client.get(key)
            if (data) {
                resolve(data)
            } else {
                reject(false)
            }
        })
    }
    //删除数据
    async delete(key) {
        await this.client.del(key)
    }
}

module.exports = new Redis()

用法:

    //引入
    const redis = require('./encapsulation-redis.js')
    //链接redis
    await redis.connect()
    //设置key
    await redis.set('login', 'loginUser')
    //设置过期时间 单位 秒
    await redis.set('login', 'loginUser','10')
    //写入对象 会将其转换为string类型
    await redis.set('login', 'loginUser',{user:'123'})
    //获取key
    let result = await redis.get('login')
    console.log(result)
    //断开链接 
    redis.qiut()
举报

相关推荐

0 条评论