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

gru*_*uvy 18 api caching redis node.js

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

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

谢谢!

Nic*_*son 32

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

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

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

这可能是最直接的解决方案,似乎很好地涵盖了您的用例.

  • 这也将避免在实际需要之前重新获取缓存的数据,而不是在某个时间间隔内执行,而不管是否按照问题建议使用它. (2认同)