Задать вопрос
@rzlobin89

Как добавить всю таблицу в кеш?

Подскажите, мне нужно загружать прайс-листы и распознавать марки-модели авто. Модели авто хранятся в отдельной таблице. Как сделать, чтобы при обходе товаров прайс-листа, каждый раз не обращаться к таблице моделей, а, например, засунуть её в кеш, и работать уже из него?
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
R0dger
@R0dger
Laravel/Yii/2 AngularJs PHP RESTful API
Создаете уникальный ключ и кладете туда стоимость, далее при изменении в модели цены обновляете кеш, почитайте про зависимости

Обычно механизм такой, есть некий сервис, мы к нему всегда обращаемся, если есть цена в кеше, он ее отдает, если нету берет из БД - кладет ее в кеш - отдает нам.
Но контролировать актуальность цены вы должны сами или как я писал выше зависимости использовать (но как я понимаю лишние запросы вы не хотите).
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
1. Кеш не всегда быстрее. Кеш он разный бывает. Так что если запрос простой, на выборку из 1 таблицы, то наверное не стоит вообще ничего делать. А если делать - смотреть в сторону memcache, можно еще подумать про redis
2. наверное узкое место Вашего случая, это размер прайс листа, он большой или не известен вовсе. Так что тут путь оптимизации ведет скорее к разбивке анализа прайса на несколько частей, нежели на кэширование таблицы. Например, загонять в служебную таблицу, потом по расписанию кроном ее дергать и выбирать-обрабатывать порциями. Тогда и запрос к моделям будет ограничен только рядом моделей и в память будет попадать меньшая выборка. Это даст результат.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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