Pjeroo
@Pjeroo
Веб-разработчик

Как лучше построить архитектуру веб-приложения?

Здравствуйте. Сейчас работаю над проектом, в котором предполагается сбор большого количества данных (статистика). Нужно определиться со средствами и общей архитектурой. В качестве основной базы будем использовать Postgres (т.к надежнее, свободнее, чище SQL, присутствуют NoSQL фичи), в качестве бекенда PHP и ZF1. Так как сервис предполагает огромный поток данных (больше конечно запись, но и чтение тоже присутствует), я подумал, что имеет смысл создать некую прослойку между клиентом и основной базой, для горячих данных (очевидно, что свежие данные будут пользоваться бОльшим спросом, нежели архивные). Присматриваюсь к Redis, т.к пишут, что он уж очень быстр и позволяет хранить данные на диске, а не только в памяти. Собственно, есть идея хранить горячую статистику в Redis, а по истечении, скажем, месяца, переносить это все дело в архив в основную базу, в отдельную таблицу в Postgres, и Redis, соответственно, очищать. Хочу узнать совета профи, нормальное ли это решение или есть какие-нибудь другие лучшие варианты?
  • Вопрос задан
  • 646 просмотров
Пригласить эксперта
Ответы на вопрос 1
@aatimin
Вы определитесь с объемом горячих данных, наверняка он поместится в оперативку, и pоstgresql будет спокойно эти данные оттуда выбирать, не глупая же субд.

И предусмотрите шардинг сразу. Заложите изначально масштабирование.

Горячие данные и архив по-любому надо хранить в разных таблицах.

В таблицах, нацеленных только на запись, и редкое чтение, вероятно есть смысл совсем не использовать индексы, чтобы они не обновлялись при добавлении новых записей.

А потом проверите всё под нагрузкой, посмотрите цифры и решите нужен вам редис или нет. Postgres же умеет в оперативке данные кешировать, поэтому надо тестировать конкретно ваш прототип.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы