使用nodejs从API调用缓存数据的正确方法

时间:2013-03-25 03:31:52

标签: api node.js caching redis

我正在使用node.js来编写一个Web服务,它调用了一些API来获取某些数据,但是我受限于每月多次调用的API,所以我希望缓存我从API检索到的数据所以我可以使用缓存的数据进行提供,并以定时间隔从API重新获取数据。

这是解决这个问题的好方法吗?我应该使用什么缓存框架?我查看了node-redis,但我认为密钥值存储不适合数据。

谢谢!

1 个答案:

答案 0 :(得分:31)

关于Redis,我不同意你的看法。 Redis是一个非常强大的键值存储,可以轻松地用于您想要的。它被设计成将废物倾倒在其中并再次取出。在您的情况下,您可以通过将查询作为密钥保存到Redis中来轻松缓存API响应(如果这是您正在调用的REST API,您可以只使用URL或序列化数据作为密钥)并简单地缓存作为字符串化的JSON对象的响应(如果碰巧得到那个,则为XML字符串)。

您还可以设置缓存数据的到期日期,并在时间到期时清除。

然后,您可以将API调用包装在检查缓存的辅助函数中,并返回值(如果存在)。如果它不是它发出API请求,则将其添加到缓存中,然后返回它。

这可能是最简单的解决方案,似乎很好地涵盖了您的用例。