node代理层
用下面三个方法进行优化:
- 按需加载 -> graphQL
- 数据缓存 -> redis
- 轮询更新 -> schedule
1.graphQL按需加载数据只需要三步:
- 定义数据池 root
- 描述数据池中数据结构 schema
- 自定义查询数据 query
2.使用redis缓存
redis来缓存接口的聚合数据,下次再调用接口,直接从缓存中获取数据即可,避免高耗时的复杂调用
3.node-schedule定时更新缓存
const schedule = require('node-schedule');
const { promisify } = require("util");
const redis = require("redis");
const client = redis.createClient(6379, '127.0.0.1');
// promise化
const setAsync = promisify(client.set).bind(client);
// 每个小时更新一次缓存
schedule.scheduleJob('* * 0 * * *', async () => {
const data = require('./girls.json');
// 设置redis缓存数据
await setAsync("缓存", JSON.stringify(data));
});
console.log('每个小时更新一次缓存');