Чтение «отдай старое, обнови фоном» спасает от MISS только ту ячейку, которая хоть раз была в кэше. Ячейку, которой нет вовсе, отдать нечем. Фильтры каталога — ровно такие ячейки: комбинаций много, и каждую кто-то открывает впервые.
Это одиннадцатая часть цикла «Кэш фрагментов и Redis».
Что показал замер
Фильтр каталога на 22 категории: 18 из 22 — MISS, в среднем 1,93 с против 0,30 с из кэша. Прогрев клал в кэш только фильтр без выбранной категории. Всё остальное ждало первого посетителя.
Засевать заранее
- по каждой категории — сам блок и кнопка «показать ещё», в двух вариантах устройства;
- полный засев — на редких событиях: после выката и раз в сутки;
- на сбросе от обмена 1С — только задетая категория, а не всё;
- заведомо пустые ячейки не ставить — категория без товаров не засевается.
Не верьте счётчику терминов. Число записей в категории, которое хранит WordPress, учитывает и удалённые записи. Пустоту определяйте запросом, а не этим полем — иначе засеете пустые ячейки и пропустите живые.
Что сознательно не греем
Сортировки. Каждая сортировка умножается на все категории, все страницы и оба устройства, а включают её редко. Цена — первый клик по сортировке около 1,1 с, дальше 0,3 с. Это осознанный компромисс; на большинстве каталогов сортировкой пользуются заметно реже, чем фильтром.
Граница «засеваем / не засеваем» проходит не по технике, а по спросу: что открывают часто — засевается заранее, что редко — живёт на первом MISS.
Фильтры каталога медленные на первом клике?
Пришлите адрес — посчитаю комбинации и подскажу, что засевать.
// загружаю комментарии…