Грамотное кэширование в NodeJS проекте

Sanu0074
На сайте с 31.08.2012
Offline
110
1547

Планируется highload-проект с использованием NodeJS, MySQL, Redis, NGINX.

За основу взят nodejs фреймворк express, и для работы с сокетами (может это и не хорошее решение) socket.io. Проект представляет собой Single page application, предполагается что сокет-соединение будет открыто повсеместно. Будет большое количество страниц, которые являются статистично-информативными, и не щадят бд тяжелыми запросами.

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

1. Например, есть запрос к БД, результат его мы можем сохранить в Redis в виде JSON, при следующих обращениях уже будем брать его из redis и когда необходимо - делать инвалидацию данного кэша. - На сколько правильно это? и стоит ли именно в JSON хранить данные?

2. Нам иногда нужна закешерованная страница не только в JSON, а кусок или целяком HTML. - Правильно ли, хранить эти куски в redis?

3. Есть идея реализовать session-storage в redis, как это сделать правильно? например ключом будет id сессии, а значением - массив данных о клиенте. - Это правильно или нет? как лучше будет?

4. В каких случаях стоит записывать кэш в файлы на диск?

5. Стоит ли вообще пихать все что выше описано в redis?

Я не имею опыта в highload, поэтому мне интересно все что вы скажете, очень нужны грамотные советы в построении проекта на перечисленных компонентах. Может есть какие-то рекомендации по работе с сокетами в highload, либо еще что-то, что касается основ такого проекта.

Признателен за ваши полезные советы, благодарю за внимание!

DiAksID
На сайте с 02.08.2008
Offline
236
#1

покопайтесь в Derby - в любом случае не потеряете время зря. документация и сообщество развиты не особо, но ребята давно роют в указанных направлениях и достигли ооочень хороших (мягко говоря) результатов...

show must go on !!!...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий