ExpressJS:如何按需缓存



我正在尝试构建一个带有express,sequelize(PostgreSQL方言)和node的REST API。

本质上,我有两个端点:

<th style="text-align: left;">Methodstyle="文本对齐:左;">GETstyle="文本对齐:左;">POST
EndpointDesc.
/api/players获取玩家信息,包括资产
/api/assets创建资产

通常缓存是在 Redis 的帮助下完成的。Redis 是内存中的键值存储。您可以通过以下方式处理缓存。

  1. 在 POST 操作的处理程序中更新/重置玩家的缓存条目。
  2. 在 GET 操作的处理程序中,如果 Redis 在缓存中有条目返回它,否则执行逻辑查询数据,将条目添加到缓存并返回数据。

或者,您可以使用Memcached。

这个答案有点晚了,但我正在寻找类似的解决方案。我发现 apicache 库不仅允许在指定的持续时间内缓存,而且还可以手动清除缓存。

apicache.clear([target]) - 清除缓存目标(键或组)或整个缓存(如果未传递任何值),则返回新索引。

下面是您的实现示例:

// POST /api/assets
app.post('/api/assets', function(req, res, next) {
// update assets then clear cache
apicache.clear()
// or only clear the specific players cache by using a parameter 
// apicache.clear('players')
res.send(response)
})

最新更新