实现思路
- 初始化缓存对象:在Node.js应用程序启动时,创建一个空的JavaScript对象用于存储缓存数据。
- 检查缓存:在每次请求访问数据库的接口时,首先检查缓存中是否已经存在所需数据。如果存在,则直接返回缓存数据,避免访问数据库。
- 更新缓存:当从数据库获取到新数据后,将数据存入缓存中,以便后续请求使用。同时,可以设置缓存的过期时间,当缓存过期后,再次请求时会重新从数据库获取数据。
关键代码示例
// 引入Node.js内置模块
const http = require('http');
// 模拟数据库查询函数
const queryDatabase = () => {
// 这里可以是实际的数据库查询逻辑,返回一个Promise
return new Promise((resolve) => {
setTimeout(() => {
resolve('从数据库获取的数据');
}, 1000);
});
};
// 缓存对象
let cache = {};
// 缓存过期时间(毫秒)
const CACHE_EXPIRE_TIME = 5 * 1000; // 5秒
const server = http.createServer(async (req, res) => {
const cacheKey = 'your_database_query_key';
if (cache[cacheKey] && Date.now() - cache[cacheKey].timestamp < CACHE_EXPIRE_TIME) {
res.end(cache[cacheKey].data);
} else {
const data = await queryDatabase();
cache[cacheKey] = {
data,
timestamp: Date.now()
};
res.end(data);
}
});
const port = 3000;
server.listen(port, () => {
console.log(`Server running on port ${port}`);
});