Кэширование данных на nodejs
Нужно закешировать данные ( без бд, т.е пока нода работает данные в ОЗУ, когда "лежит" в файле ) на час ( к примеру ), через час выполнить функцию х если она вернет false нужно обновить данные если true то нечего, какой инструмент лучше подойдет для этого?
|
А вообще думаю как сделать лучше. У меня идет запрос к api одного сервиса, я получаю прличный json ответ, и что бы каждый раз не грузить данные через api хочу их закешировать пока сервер работает данные весят в ОЗУ, но через некоторый период нужно проверять достоверность данных через сравнение версий, сами данные для этого загружать не нужно, нужно только получить версию и сравнить, если данные изменились то их нужно обновить. Так вот как лучше сделать?
1. Хранить данные в ОЗУ и при перезапуске сервера просто загружать заново. 2. Хранить данные в ОЗУ и при перезапуске сервера загружать с файла. 3. Хранить данные в ОЗУ и при перезапуске сервера загружать с БД - не факт что тут будет особый профит в загрузке по сравнению с загруской с api |
Или лучше сделать кэширование запросов через nginx, и при изменение данных просто сбрасывать кэш?
Или тупая идея отправлять запрос так nodejs > nginx > api? |
В общем проблему решил, но хотелось услышать мнения.
Я не верю что не кто не знает... |
Если файл один, то без проблем можешь кешировать в оперативке в самом ноде скрипте, а если таких файлов много, то лучше заюзай key-value хранилище, например, Redis, т.к. такая схема будет гораздо лучше масштабироваться.
|
первый вариант вроде как и используется чаще всего
|
melky, спасибо, я так и сделал)
kobezzza, спасибо |
Цитата:
|
Часовой пояс GMT +3, время: 21:32. |