Небольшой кешер
Добавил в каталог небольшой плагин-кешер, которых умеет сохранять полученный объекты пользователей на время жизни инстанса плагина.
Т.е. плагин локально хранит объект пользователя и при его повторном запросе не обращается заново к кешу или БД, а просто возвращает его из массива.
Плагин на GitHub.
Сказать спасибо можно на ЯД 410011972198043.
Т.е. плагин локально хранит объект пользователя и при его повторном запросе не обращается заново к кешу или БД, а просто возвращает его из массива.
Плагин на GitHub.
Сказать спасибо можно на ЯД 410011972198043.
12 комментариев
Заметно будет не всегда — у меня есть страницы, где часто выводятся аватарки/ники пользователей (как в коментариях, прямом эфире и т.д.).
2. Возможна ли ситуация, когда в логике или движка, или плагинов в какой-то момент времени происходит модификация данных в кеше, а мы по-прежнему берем устаревшие из массива?
Совершенно верно. Локальный кешер жив только в момент жизни инстанса движка. И заметная польза от него только в тот момент, когда при формировании страницы объект пользователя запрашивается больше одного раза.
Кешер проксирует два метода — GetUserById и Update. Если объект пользователя изменяется методом Update, то кешер сбрасывает кеш для этого пользователя. Если поменять данные напрямую в БД или сбросив руками значения в мемкеше по тегу, то кешер об этом не узнает.
А может имеет смысл расширить состав проксируемых методов?
Ну а сохранение пользователя нужно проксировать просто, что бы его не поломать.
Та же самая картина и с другими объектами в LS. Топики, комментарии врядли будут запращиваться более одного раза в рамках одного инстанса. Их так же нет смысла проксировать.