我在vm中安装了redis和mongodb,我正在尝试加快mongoose find()请求的响应时间。。我用了lean(),效果很好。。然后我找到了redis并安装了它,我按照本教程在我的控制器中设置redis:https://epsagon.com/development/using-redis-to-optimize-mongodb-queries/
我在/services中创建了带有连接详细信息的cache.js,然后在我导入的控制器代码中:
const { clearKey } = require("../services/cache");
在find()中,我添加了.cache():
await Book.find({ author: req.query.author }).cache();
我想知道应用程序是如何知道.cache()函数是我的redis服务器的,因为我只导入了“clearkey”,而没有使用它?而且性能没有提高,所以我不知道redis的设置是否正确和有效。如何检查?
谢谢
1条答案
按热度按时间ep6jt1vc1#
您已将缓存函数添加到
mongoose.Query.prototype.cache
,这意味着你延长了mongoose.Query
并自动添加到所有mongoose模型中。关于第二个问题,您需要在redis中添加:
当您的查询在mongodb上运行时,您应该看到一个日志:
当您的查询在redis上运行时,您应该会看到一个不同的日志:
您可以在这个github文件中看到更多信息。