egg.js redis缓存的简单简单应用(存储和获取)

引入插件

npm i egg-redis --save

config/plugin.js文件中配置插件

'use strict';

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

config/config.default.js文件中配置redis参数

注:这里直接配置多库模式,并给不同的库定义别名,方便使用——redis单机模式可用,如果是集群模式,则老老实实的配置一个就行,具体参照egg-redis集群模式配置

/* eslint valid-jsdoc: "off" */

'use strict';

/**
 * @param {Egg.EggAppInfo} appInfo app info
 */
module.exports = appInfo => {
  /**
   * built-in config
   * @type {Egg.EggAppConfig}
   **/
  const config = exports = {};

  config.redis = {
    clients: {
      user: { // user可以替换为自己想要的
        port: 6379,
        host: '127.0.0.1',
        password: '',
        db: 0, // 单机模式的默认库
      },
      other: {
        port: 6379,
        host: '127.0.0.1',
        password: '',
        db: 1,
      },
    },
  };


  return {
    ...config,
  };
};

redis-service封装文件的配置 app/service/cache/redis.js

'use strict';

const BaseService = require('../core/base'); // 标注1:BaseService基类文件根据自己的

const dbConfig = [ 'user', 'other' ]; // 标注2:配置文件中的名称,便于读取

/**
 * redis类
 */
class RedisService extends BaseService { // 标注1:BaseService基类文件根据自己的


  /**
   * redis数据存储,所有数据均存储为序列化json字符串
   * @param {*} key 键名
   * @param {*} val 键值
   * @param {*} expir 有效期
   * @param {*} db 配置库名 ,从dbConfig中进行取值
   */
  async set(key, val, expir = 0, db = 0) {

    const { redis } = this.app;
    const dbRedis = redis.clients.get(dbConfig[db]);

    if (expir === 0) {
      return await dbRedis.set(key, JSON.stringify(val));
    }
    return await dbRedis.set(key, JSON.stringify(val), 'EX', expir);

  }

  /**
   * 获取缓存的值
   * @param {*} key 键名
   * @param {*} db 库编号
   */
  async get(key, db = 0) {

    const { redis } = this.app;
    const dbRedis = await redis.clients.get(dbConfig[db]).get(key);

    return JSON.parse(dbRedis);

  }
}

module.exports = RedisService;

egg.js中进行调用数据

'use strict';

class HomeController {

  async redisCeshi() {
    const { ctx } = this;

    const rs = await ctx.service.cache.redis.set('ceshi', 'sadas', 60, 0); // 存储

    const rsN = await ctx.service.cache.redis.get('ceshi', 0); // 获取
 
    ctx.body = '操作成功';

  }
}

module.exports = HomeController;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值