vp-cache
v1.0.0
Published
数据缓存工具
Downloads
39
Readme
@vp/cache
安装
npm i @vp/cache --registry=http://47.95.12.124:4873
开发
npm run watch & npm run dev
使用
创建cache.js
import VPCache from '@vp/cache'
export default new VPCache({
useRedis: true,
maxAge: 3,
projectName: 'test',
redisConfig: {
host: '127.0.0.1',
port: 6379
},
cacheRules: [{
url: '/api/v1/autochess/player/trends',
rule: (query: any, data: any) => {
if (data && data.retcode === 0) {
return true
}
return false
}
}]
})
加入路由 routes.js
import Router from 'koa-router'
import cache from './cache'
const router = new Router()
cache.router(router)
export default router
服务端 fetch使用
import cache from './cache'
...
const currCache = await cache.getCache(url, params, data)
if (currCache && currCache.response) {
return Promise.resolve(currCache.response)
}
return axios(options)
.then(res => {
if (res.status === 204) {
return {
code: 204,
success: true,
}
}
cache.setCache(url, params, data, res.data)
return res.data
})
配置参数说明
| max | 本地缓存时最大缓存数量 | Number: 1000 | | --- | --- | --- | | maxAge | 接口缓存时间(单位:分钟) | Number: 1 | | projectName | 缓存项目名称(缓存key的前缀) | String: '' | | useRedis | 使用启用redis缓存 | Boolean: false | | redisConfig | redis配置 | RedisOptions | | useLocal | 使用本地缓存 | Boolean: true | | routerPath | 路由的前缀 | String: '/' | | cacheRules | 路由缓存规则 | Array: [] |
路由缓存规则
此规则用户检验数据内容的有效性 即缓存时的判断
...
cacheRules: [
{
url: '/api/v1/autochess/player/trends', //请求地址
rule: (query: any, data: any) => { // query:参数 data: 接口返回数据
if (data && data.retcode === 0) {
return true
}
return false
}
}
]
...
路由列表
${routerPath}getAllCache
获取所有的缓存列表 ?hide=true 隐藏所有response
${routerPath}clearAllCache
清除所有的缓存数据
${routerPath}getCache
通过key获取缓存信息 ?key=xxx
${routerPath}cacheStatus
设置缓存的开关 默认开启 ?allow=false 则为禁用缓存
${routerPath}deleteCache?key=
删除缓存数据