Правильный способ кэширования данных из вызова API с помощью nodejs

Я использую node.js для написания веб-службы, он вызывает API для некоторых данных, но я ограничен API количеством звонков в месяц, поэтому я хочу кэшировать данные, которые я извлекаю из API, чтобы я мог обслуживать его с кэшированными данными и повторно извлекать данные из API в определенный промежуток времени.

Это хороший подход к этой проблеме? Какую структуру кэширования я должен использовать? Я посмотрел на node -redis, но я не думаю, что хранилище ключевых значений подходит для данных.

Спасибо!

Ответы

Ответ 1

Я бы не согласился с вами относительно Редиса. Redis - очень мощный магазин ключей, который можно легко использовать для того, что вы хотите. Он предназначен для того, чтобы сбрасывать в него вещи и вынимать их снова. В вашей ситуации вы можете легко кэшировать ответ API, сохранив его в Redis с запросом в качестве ключа (если это API REST, который вы вызываете, вы можете просто использовать URL или сериализованные данные в качестве ключа) и просто кешировать ответ как стробированный объект JSON (или XML-строка, если вам это удается).

Вы также можете установить истечение срока действия кэшированных данных, и оно будет очищено по истечении времени.

Затем вы можете обернуть свой вызов API в вспомогательную функцию, которая проверяет кеш и возвращает значение, если оно присутствует. Если он не делает запрос API, добавляет его в кеш, а затем возвращает его.

Это, пожалуй, самое простое решение и, похоже, очень хорошо подходит для вашего использования.