В общем, у меня следующий сценарий:
- Получить продукт и связанные с ним данные из базы данных
- Преобразование выбранных данных в объект php 'product'
- кеширование объекта продукта в сеансе
Кэш доступен только для чтения, т. Е. Клиенты просматривают товары на сайте.
Но есть такие вызовы, как getProductIdsByCategory($categoryId)
, и идентификаторы продуктов из этих результатов также кэшируются для каждого пользователя, не используя глобальный кеш, о котором я читал.
Проблема заключается в том, что если кто-то на стороне администратора добавляет новый продукт и связывает его с категорией, то клиенты не будут получать новый productId в своем кэшированном getProductIdsByCategory
, пока не начнется новый сеанс.
Есть ли способ очистить, например, $_SESSION['x']
от ВСЕХ сеансов на сервере при добавлении нового продукта? Я не хочу уничтожать все сеансы, потому что клиенты потеряют свои логины и т. Д.
Или я должен переместить эти кэшированные поиски productId в глобальный кеш?
p.s я использую пользовательский кеш, а не memcached или подобный.
Спасибо