添加caching到node.js MongoDB API?
我的node.js API对MongoDB运行一些昂贵的“组”查询,例如:
app.get('/group/:collection', function(req, res) { [...] db.collection("indicators").group(keys, conds, { value : 0 } [...]
什么是一些相当容易实现的caching解决scheme在这里?
redis很容易实现
-
安装redis
-
安装redis节点模块
npm install redis --save
-
创build一个caching服务。 这真的是最难的部分,但总体stream程看起来像这样:
- 请求caching服务。
- caching服务根据查询检查caching对象的redis。
- 如果存在,则caching从redis返回数据;如果不存在,则从mongo返回数据。
- 如果数据在redis中不存在或已经过期,则caching服务将数据写入redis。
在caching方面做得非常好,redis提供了一些function强大的处理队列,发布/订阅消息,列表pipe理…