配置缓存插件

优质
小牛编辑
132浏览
2023-12-01

egg-redis

文档:https://www.npmjs.com/package/egg-redis 安装:npm i egg-redis --save 开启插件:

Change ${app_root}/config/plugin.js to enable redis plugin:

exports.redis = {
  enable: true,
  package: 'egg-redis',
};

设置redis连接

Configure redis information in ${app_root}/config/config.default.js:

Single Client

config.redis = {
  client: {
    port: 6379,          // Redis port
    host: '127.0.0.1',   // Redis host
    password: 'auth',
    db: 0,
  },
}

封装常用redis操作类

  • [ ] service / cache.js
    
    'use strict';

const Service = require('egg').Service;

class CacheService extends Service {

/**

  • 设置 redis 缓存
  • @param { String } key 键
  • @param {String | Object | array} value 值
  • @param { Number } expir 过期时间 单位秒
  • @return { String } 返回成功字符串OK */ async set(key,value,expir=0) { const { redis } = this.app if (expir === 0) { return await redis.set(key, JSON.stringify(value)) } else { return await redis.set(key, JSON.stringify(value), 'EX', expir) } }

/**

  • 获取 redis 缓存
  • @param { String } key 键
  • @return { String | array | Object } 返回获取的数据 */ async get(key) { const { redis } = this.app const result = await redis.get(key) return JSON.parse(result) }

/**

  • redis 自增
  • @param { String } key 键
  • @param { Number } value 自增的值
  • @return { Number } 返回递增值 */ async incr(key, number=1) { const { redis } = this.app if (number === 1) { return await redis.incr(key) } else { return await redis.incrby(key, number) } }

/**

  • 查询长度
  • @param { String } key
  • @return { Number } 返回数据长度 */ async strlen(key) { const { redis } = this.app return await redis.strlen(key) } }

module.exports = CacheService;