向 Node.js MongoDB API 添加缓存?

dan*_*ani 5 caching mongodb node.js node-mongodb-native

我的 node.js API 对 MongoDB 运行一些昂贵的“组”查询,例如使用:

app.get('/group/:collection', function(req, res) {
    [...]
    db.collection("indicators").group(keys, conds, { value : 0 } [...]
Run Code Online (Sandbox Code Playgroud)

这里有哪些相当容易实现的缓存解决方案?

Bri*_*oah 1

redis非常容易实现

  1. 安装redis

  2. 安装redis节点模块

    npm install redis --save
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建缓存服务。这确实是最难的部分,但总体流程如下所示:

    1. 向缓存服务发出请求。
    2. 缓存服务根据查询检查 Redis 中是否有缓存对象。
    3. 如果存在,则缓存从redis返回数据;如果不存在,则从mongo返回数据。
    4. 如果数据不存在于 Redis 中或已过期,缓存服务会将数据写入 Redis。

除了在缓存方面表现出色之外,Redis 还提供了一些令人惊叹的功能来处理队列、发布/订阅消息传递、列表管理......