@Pauletto

Как организовать управление кэшем магазина в админке?

Добрый день! Интересуют мнения как лучше организовать кеш на сайте. Есть интернет магазин на yii2 и crm, в которой находится админка к магазину на yii1, crm используется только внутри, из вне недоступна. Есть такой сценарий - в админке создаются новости для сайта, на сайте они кладутся в кеш и показываются, чтобы не дергать базу. Но вот вопрос - как сбросить кеш только новостей на сайте, не затронув весь остальной кеш сайта?

Я думаю, что если использовать кеш редиса, в админке и на сайте будет один сервер редиса использоваться и будет один общий файл со списков ключей кеша. Соответственно тогда можно будет рулить каждым разделом кеша магазина (новости, акции, страницы) отдельно, если я правильно понимаю.
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ответы на вопрос 2
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
Если страница представляет собой слой темы с вложенным слоем контента, то можно кешировать слой контента для каталогов (если не используется сортировка) или страницы (новости, статические текстовые страницы). Вообще кеширование не всегда имеет смысл: скажем генерация простого слоя с текстом страницы будет ненамного медленнее (если не быстрее) чем излечение её из кеша.

Про https://ru.wikipedia.org/wiki/HTTP_ETag тоже не стоит забывать.
Ответ написан
А обязательно кэшировать новости? Мне кажется новости - это один запрос в бд, нагрузки сильно не прибавит, хотя в вашем проекте может все сложнее и там на страницу с новостями по 50-100 запросов делается, но что-то я сомневаюсь.

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

Далее почитайте про паттерн прокси - habrahabr.ru/post/240557 после того, как схему кэширования сделаете, уже можно думать над самим хранилищем. На ларавеле для кэша есть единый интерфейс, под который уже реализованы различные хранилища (редис, mysql), не думаю, что под yii подобного нет.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы