Рекомендуется1С-БитриксPHPRedis

1С-Битрикс: ключ кеша и инвалидация

Ключ кеша должен различать варианты данных, а изменение источника — очищать соответствующий кеш.

Проверено Изменено

Плохо

$cacheId = 'orders'; // общий для всех пользователей

Хорошо

$cacheId = hash('sha256', json_encode([
  'v' => 1, 'user' => $userId,
  'filter' => $normalizedFilter,
  'permissions' => $permissionVersion,
], JSON_THROW_ON_ERROR));

Почему это важно

Общий ключ персональной выдачи может показать чужие данные. TTL ограничивает возраст, но не заменяет проверку прав.

Когда применять

D7 Cache, PHP 7.3+ для JSON_THROW_ON_ERROR; в примере значения userId и permissionVersion получены на сервере после авторизации. При смене прав нужна инвалидация или смена версии. Публичные каталоги могут использовать общий кеш.

Кто что делает

Человек

Определяет приватность, допустимый TTL и события обновления.

AI-агент

Формирует нормализованный ключ, настраивает Cache API и проверяет очистку после записи.

Пример применения

Личный кабинет кеширует список заказов на 30 секунд. Сохранение заказа очищает кеш владельца; отзыв прав меняет permissionVersion. Выбор Redis как движка не меняет эти правила.

Как проверить у себя

  • Два пользователя не получают общую персональную выдачу.
  • Изменение данных и прав обновляет результат.
ПервоисточникиИстория изменений на GitHub

Дата проверки отражает содержательную сверку. Синхронизация сайта не обновляет её автоматически.