Кэширование в приложении командной строки Node js

1

Я пытаюсь создать приложение командной строки с помощью Node.js

Я использую кеш-узел для кэширования некоторых данных, которые поступают из вызовов API.

Однако когда я пытаюсь получить данные myCache.get( "key" ), которые были предварительно установлены с помощью myCache.set( "key", data, 10000 ); он всегда возвращается undefined.

Я думаю, проблема в том, что я запускаю приложение из командной строки. Я создаю объект кэша каждый раз, когда const myCache = new NodeCache(); ,

Но без создания объекта кеширование не будет работать явно. Есть ли какая-нибудь работа для этого?

Теги:
caching

1 ответ

2
Лучший ответ

Используемая вами библиотека кеша хранит данные в памяти приложения. Поэтому, как только приложение выходит, кеш теряется.

В веб-приложении ситуация отличается от того, что приложение никогда не выходит (если оно не сработает), поэтому кеш остается с данными.

Один из способов решения этой проблемы - хранить кеш во внешнем хранилище, таком как Redis (но для этого вам нужен сервер Redis) или, может быть, только в текстовом файле или SQLite db. Вам нужно либо написать простую библиотеку кеширования для этого, либо найти библиотеку, которая обеспечивает постоянное хранилище.

Обновление: быстрый поиск дает эту библиотеку: https://www.npmjs.com/package/cache-manager, я не использовал ее, но документы говорят, что она поддерживает различные хранилища для сохранения данных и node-cache-manager-fs может быть хорошо для вашего дела.

  • 0
    Да уж! Догадалась, что это может быть проблемой. Использование Redis было бы излишним. Нужно что-то выяснить.
  • 0
    Я обновил ответ с помощью библиотеки, полученной в результате быстрого поиска, она поддерживает файловую систему в качестве хранилища, которое может подходить для вашего случая использования.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню