2015-08-13 1 views
1

Наш сайт имеет счетчики для просмотра, комментариев и комментариев, которые отображаются в миниатюрах статьи. Эти миниатюры кэшируются, а затем используются в разных местах, часто кэшируются сами. Проблема заключается в том, что по мере увеличения счетчиков все эти разные фрагменты кеша быстро устаревают. В результате на разных страницах, отображающих одни и те же статьи, будут отображаться счетчики с разными значениями.Держите счетчики актуальными для кэшированного веб-сайта

Сайт выполнен в RoR 4.2.1, а кеширование осуществляется через Memcached.

Каков наилучший способ максимизировать кеширование для достижения максимальной производительности при сохранении обновленного контента?

ответ

0

Есть несколько подходов, чтобы сделать это, и все это сводится к тому, сколько оптимизация вам нужно:

  1. Fetch счетчик для просмотров страниц в отдельный вызов AJAX после загрузки страницы в кэше. Это решение должно быть очень совместимо с вашим текущим дизайном.

  2. Частичные части кэша вместо полной страницы. Это означает, что у вас будут кешированные копии всех частичных данных, за исключением того, что для просмотров страниц, и поэтому вам может потребоваться внести серьезные изменения в ваш код.

  3. Если запросы слишком велики, вы также можете написать функцию аппроксимации (в js), которая, учитывая предыдущие просмотры страниц, сообщает о предполагаемых просмотрах страниц, которые могут отображаться для конечного пользователя. Базовые данные могут обновляться каждую минуту (или пользовательскую частоту).

+1

Thanks Mu. Вероятно, я должен был быть более конкретным, когда говорил о миниатюрах, что есть 21 из них на странице (7x3), поэтому 21 набор счетчиков. Решение 1 может по-прежнему сильно напрягаться на сервере (если я также не кэширую этот вызов в течение нескольких минут), а 2 уже выполняется (стиль русской куклы). 3 интересно, я попробую. – ben

Смежные вопросы