我正在开发 Node.js 项目。我开始通过 upstash 使用 Redis 来缓存数据。与没有 redis 的情况相比,它需要更多的时间来检索数据。当我使用
redis.get()
或 redis.set()
时,需要太多时间。
const Redis = require('ioredis')
const redis = new Redis(REDIS_URL);
router.get('/', async (req, res) => {
try {
const redisProduct = await redis.get('products');
if(redisProduct) {
console.log("returned from redis")
const products = JSON.parse(redisProduct)
return res.render('products', { products })
}
const products = await productSchema.aggregate([
{
$sort: { createdAt: -1 }
}
])
await redis.set('products', JSON.stringify(products), 'EX', 300)
console.log('quaried from database and set to the redis')
return res.render('products', { products })
} catch(error) {
console.log('Error: ' + error)
res.status(404).send('Something went wrong')
}
})
500 毫秒就是半秒,速度非常快。没有缓存的数据库查询之所以这么快,是因为您仍在设置并且尚未获取大量数据来查询。如果您知道您永远不会拥有大量数据,则不需要缓存服务。我很确定这就是一切的运作方式。希望对您有帮助。