[Из песочницы] Опыт внедрения кэширования в небольшой проект с сильной социальной составляющей
Хочу поделиться опытом внедрения кэширования при помощи memcached на своем сайте. Текст будет полезен новичкам в веб-разработке, которые задаются вопросом «как же применять на практике те 100500 статей о кэшировании, которые легко находятся в поисковиках». На истину не претендую, просто рассказываю, как получилось у меня. Исходные данные: Сайт крутится на одном выделенном сервере, но из-за вероятности в будущем еще подрасти, для кэширования выбран memcached; Суточная посещаемость: ~23 000 уникальных посетителей и ~300 000 просмотров страниц; 80% посетителей — авторизованные пользователи; Основной контент: текст (книги, которые авторы пишут и публикуют на сайте по главам, наподобие самиздата). Сервисы: персонализированные новости, чтение текстов, разбитых на главы, комментарии, профили, блоги, рейтинги, подписка, метки, закладки, личные сообщения, счетчики, почтовые уведомления… Пользовательская активность: более 10 000 действий, приводящих к изменению контента, в сутки. Сложность при внедрении кэширования: подавляющее большинство страниц содержит персонализированные данные. Где-то уникально все, вплоть до запросов в базу, где-то можно разделить запросы на общие и уникальные, где-то нельзя, где-то персональные настройки пользователя применяются на данные уже после их выбора из базы.Читать дальше →