| 
				Грамотное кэширование в NodeJS проекте
			 Планируется 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, либо еще что-то, что касается основ такого проекта.
 
 Признателен за ваши полезные советы, благодарю за внимание!
 
			
			
	
			
			
			
			
			
				  |