如果您需要使用一个简单而且易于使用的缓存适配器,可以使用axios-cache-adapter。它允许您轻松地为API请求设置缓存,而且可以很好的与axios集成。以下是一个示例:
const axios = require('axios');
const createCache = require('axios-cache-adapter').default;
const cache = createCache({
maxAge: 15 * 60 * 1000 // 15 minutes
});
const api = axios.create({
adapter: cache.adapter
});
async function getData() {
const response = await api.get('https://api.example.com/data');
console.log(response.data);
}
另一方面,如果您需要一个更坚固、可扩展的解决方案,可以选择使用Redis。Redis可以轻松地缓存API响应,而且可以用于处理大量的请求。以下是一个示例:
const redis = require('redis');
const { promisify } = require('util');
const client = redis.createClient();
const getAsync = promisify(client.get).bind(client);
const setAsync = promisify(client.set).bind(client);
async function getData() {
const cachedData = await getAsync('cached_data');
if (cachedData) {
console.log(JSON.parse(cachedData));
return;
}
const response = await axios.get('https://api.example.com/data');
console.log(response.data);
await setAsync('cached_data', JSON.stringify(response.data), 'EX', 900);
}
这个示例在获取数据之前检查了Redis缓存,如果已经存在缓存数据,则直接返回缓存。如果没有缓存数据,则获取API响应并将其缓存到Redis中,以备下次使用。使用Redis的好处之一是,它可以获得很高的性能并支持数据持久化。
总之,选择缓存解决方案取决于您的具体需
上一篇:Axios+React出现“uncaught(inpromise)error/internal500servererror”
下一篇:Axios-cache-adapterRedisStoreerrorreturnsnotvalidRedisClient