Kohana 3 - Как использовать memcached для результатов запроса кеша?
Я работаю в большом проекте, использующем инфраструктуру Kohana 3, на самом деле мне нужно улучшить его, добавив систему кэширования, чтобы уменьшить количество соединений MySQL.
Я имею в виду разработку базового (но общего) модуля для генерации полного кэширования результатов запроса, но раздельно управлять результатами запроса таблицы в разных группах.
Pex:
группы кеша: пользователи, роли, role_users и т. д.
Каждая группа содержит все результаты запроса из соответствующей таблицы. Итак, если я хочу получить значения от 'users', система кеша автоматически добавит результат в систему кеша, но если я обновлю таблицу 'users', все ключи в группе 'users' будут удалены. Я знаю, что это не так умно, но быстро и безопасно (система также генерирует списки пользователей, и результаты могут быть правильными).
Тогда мой вопрос: ¿Где и как я могу сделать "инъекцию" моего кода в дерево приложений?
Мне нужен, во-первых (для генерации хеш-ключа) полный запрос (для определенной таблицы, используемой как группа), и результат этого запроса для хранения. И когда другой хэш (в этой группе) совпадает с сохраненным, значение должно быть получено из memcached.
Итак, мне нужно: имя таблицы, запрос и результат... Я думаю, что возможно расширить класс Database, реализовать кэш в методе execute(), но я не могу его найти!
Я правильно? Где находится метод execute()?
1 ответ
Я создал модуль Kohana 3, который выполняет это, но он должен использоваться вместе с построителем запросов. Он также использует Memcache для кэширования запросов. Это делает недействительным на вставки / обновления / удаления.
Вот ссылка: