如何检查nodejs应用程序中的redis是否正常工作

zdwk9cvp  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(452)

我在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的设置是否正确和有效。如何检查?
谢谢

ep6jt1vc

ep6jt1vc1#

您已将缓存函数添加到 mongoose.Query.prototype.cache ,这意味着你延长了 mongoose.Query 并自动添加到所有mongoose模型中。
关于第二个问题,您需要在redis中添加:

const client = redis.createClient({
  host: keys.redisHost, // make sure its your redis host
  port: keys.redisPort, // make sure its your redis port
  retry_strategy: () => 1000
});

当您的查询在mongodb上运行时,您应该看到一个日志:

console.log("Response from MongoDB");

当您的查询在redis上运行时,您应该会看到一个不同的日志:

console.log("Response from Redis");

您可以在这个github文件中看到更多信息。

相关问题