实现思路
- 安装依赖:在Node.js项目中安装
redis
模块,用于与Redis交互。
- 连接Redis:创建一个Redis客户端实例并连接到Redis服务器。
- 检查缓存:在调用API接口前,先检查Redis中是否存在所需数据。如果存在,直接返回缓存数据,避免重复调用API。
- 缓存数据:调用API获取数据后,将数据存入Redis缓存中,设置合适的过期时间(根据数据更新频率而定),以便下次使用。
关键代码示例
const redis = require('redis');
const { promisify } = require('util');
// 创建Redis客户端
const client = redis.createClient();
// 将get和set方法转为Promise形式
const getAsync = promisify(client.get).bind(client);
const setAsync = promisify(client.setex).bind(client);
async function getDataFromAPI() {
// 模拟API调用,这里用Promise.resolve模拟返回数据
return Promise.resolve('API返回的数据');
}
async function getData() {
// 尝试从Redis获取数据
let data = await getAsync('api_data_key');
if (data) {
console.log('从缓存中获取数据');
return data;
} else {
// 缓存中没有,调用API获取数据
data = await getDataFromAPI();
// 将数据存入Redis缓存,设置过期时间为60秒
await setAsync('api_data_key', 60, data);
console.log('从API获取数据并存入缓存');
return data;
}
}
// 测试
getData().then(data => {
console.log('最终获取到的数据:', data);
}).catch(err => {
console.error('获取数据出错:', err);
});