Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Кэширование данных на nodejs (https://javascript.ru/forum/node-js-io-js/50566-kehshirovanie-dannykh-na-nodejs.html)

cyber 02.10.2014 00:21

Кэширование данных на nodejs
 
Нужно закешировать данные ( без бд, т.е пока нода работает данные в ОЗУ, когда "лежит" в файле ) на час ( к примеру ), через час выполнить функцию х если она вернет false нужно обновить данные если true то нечего, какой инструмент лучше подойдет для этого?

cyber 02.10.2014 00:43

А вообще думаю как сделать лучше. У меня идет запрос к api одного сервиса, я получаю прличный json ответ, и что бы каждый раз не грузить данные через api хочу их закешировать пока сервер работает данные весят в ОЗУ, но через некоторый период нужно проверять достоверность данных через сравнение версий, сами данные для этого загружать не нужно, нужно только получить версию и сравнить, если данные изменились то их нужно обновить. Так вот как лучше сделать?
1. Хранить данные в ОЗУ и при перезапуске сервера просто загружать заново.
2. Хранить данные в ОЗУ и при перезапуске сервера загружать с файла.
3. Хранить данные в ОЗУ и при перезапуске сервера загружать с БД - не факт что тут будет особый профит в загрузке по сравнению с загруской с api

cyber 02.10.2014 01:10

Или лучше сделать кэширование запросов через nginx, и при изменение данных просто сбрасывать кэш?
Или тупая идея отправлять запрос так nodejs > nginx > api?

cyber 02.10.2014 21:28

В общем проблему решил, но хотелось услышать мнения.
Я не верю что не кто не знает...

kobezzza 03.10.2014 09:04

Если файл один, то без проблем можешь кешировать в оперативке в самом ноде скрипте, а если таких файлов много, то лучше заюзай key-value хранилище, например, Redis, т.к. такая схема будет гораздо лучше масштабироваться.

melky 03.10.2014 09:54

первый вариант вроде как и используется чаще всего

cyber 03.10.2014 10:39

melky, спасибо, я так и сделал)
kobezzza, спасибо

dobryk 04.10.2014 23:42

Цитата:

Сообщение от cyber
Или лучше сделать кэширование запросов через nginx,

именно так , всуну я своё жало)


Часовой пояс GMT +3, время: 07:45.