+7 499 938 8452 пн.-пт. 10:00 – 17:00

Подрядчик перенёс сессии в быструю память — Redis или Memcache — «чтобы витрина летала». Утром гость собирает корзину, уходит к кассе — пусто. В студии человек уже вписал имя и телефон в форму записи, обновил страницу — поля чистые. Заявка ещё не визит и не оплата, но доверие уже нет. Владелец слышит «ускорили» и не связывает пустую корзину с ночной очисткой памяти.

Вечный спиннер мини-корзины, пока страница не отпустила файл сессии — другая поломка: вкладка ждёт сама себя. Здесь спиннера может не быть. Состав просто исчезает. Диск при этом свободный. PHP живой. Человек пишет «вас взломали» или «сайт стёр заказ».

Проблема

Страх медленной витрины: сессии на диске рядом с фото «тормозят». Жажда зелёного отчёта: быстрая память в чек-листе хостера. Стыд оставить «как было», когда сосед уже на Redis. На Битриксе блокнот гостя держит корзину, город, черновик формы. Его можно хранить в файле, в базе или в памяти. Память быстрее. Она же забывает, если её сбрасывают вместе с кешем страниц, если срок жизни пятнадцать минут, если два фронтенда смотрят в разные инстансы.

Композит (сохранённый каркас витрины) корзину как раз рисует живым куском из этого блокнота. Каркас приехал, состав пустой — гость видит шапку без своих пар. TTFB (сервер начал отвечать) короткий. Касса мёртвая.

Причина

Выкладка шаблона или «почистить кеш» делает flush всей памяти: вместе с копиями страниц уезжают сессии. Лимит памяти инстанса полный — вытесняют старые ключи, в том числе корзину человека, который выбирал полчаса. Префикс ключей совпал с кешем компонента: сброс раздела убивает гостей. Два сервера за балансировкой без общей памяти — чётный запрос видит корзину, нечётный нет. В студии то же на многошаговой записи: первый экран жив, второй уже без имени.

  • Срок жизни сессии короче, чем путь «каталог → карточка → касса» или «услуга → форма → подтверждение».
  • Ночной агент «очистить кеш» бьёт тот же инстанс, что блокноты гостей.
  • Тестовый и боевой магазин делят один Memcache — сброс теста чистит бой.
  • После переезда на два PHP-фронта сессии не перенесли: утро пустых корзин.

LCP (когда появилось главное фото) и INP (кнопка отозвалась) могут быть зелёными. Человек добавил товар, кнопка ответила, фото на месте. Через минуту шапка без состава. Это не «медленный сайт». Это забывчивая память.

Решение

  1. Выписать, где лежат сессии: файл, база, Redis, Memcache. Отдельно — куда бьёт кнопка «очистить кеш» в админке.
  2. Гостем собрать корзину из трёх позиций и черновик заявки в студии. Подождать дольше объявленного срока жизни ключа. Обновить. Состав и поля должны остаться.
  3. На копии нажать сброс кеша страниц. Корзины боевых гостей на копии не должны уехать вместе с HTML.
  4. Если два фронтенда — один инстанс памяти или липкая сессия. Два окна, два состава, без перемешивания.
  5. Выкладку шаблона проводить без flushall по всем ключам. Сессии и кеш страниц — разные префиксы.

Проверка

Не возвращают сессии на переполненный диск «чтобы было как раньше», пока не развели ключи. Не лечат обнуление увеличением OPcache: разобранные файлы PHP блокнот гостя не хранят. Не винят покупателя, что «не нажал оформить быстрее». Записывают: где сессии, какой срок, что делает сброс кеша, живы ли три позиции и черновик заявки через час. Останавливаются, когда выкладка и уборка копий не обнуляют гостя. Иначе следующий «разгон» снова сотрёт кассу ночью.

Чек-лист

  • Выписать, где лежат сессии: файл, база, Redis, Memcache. Отдельно — куда бьёт кнопка «очистить кеш» в админке.
  • Гостем собрать корзину из трёх позиций и черновик заявки в студии. Подождать дольше объявленного срока жизни ключа. Обновить. Состав и по…
  • На копии нажать сброс кеша страниц. Корзины боевых гостей на копии не должны уехать вместе с HTML.
  • Если два фронтенда — один инстанс памяти или липкая сессия. Два окна, два состава, без перемешивания.
  • Выкладку шаблона проводить без flushall по всем ключам. Сессии и кеш страниц — разные префиксы.


Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA

Каталог для ИИ