多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ### 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; ```