Kohana 3 - Как использовать memcached для результатов запроса кеша?

Я работаю в большом проекте, использующем инфраструктуру Kohana 3, на самом деле мне нужно улучшить его, добавив систему кэширования, чтобы уменьшить количество соединений MySQL.

Я имею в виду разработку базового (но общего) модуля для генерации полного кэширования результатов запроса, но раздельно управлять результатами запроса таблицы в разных группах.

Pex:

группы кеша: пользователи, роли, role_users и т. д.

Каждая группа содержит все результаты запроса из соответствующей таблицы. Итак, если я хочу получить значения от 'users', система кеша автоматически добавит результат в систему кеша, но если я обновлю таблицу 'users', все ключи в группе 'users' будут удалены. Я знаю, что это не так умно, но быстро и безопасно (система также генерирует списки пользователей, и результаты могут быть правильными).

Тогда мой вопрос: ¿Где и как я могу сделать "инъекцию" моего кода в дерево приложений?

Мне нужен, во-первых (для генерации хеш-ключа) полный запрос (для определенной таблицы, используемой как группа), и результат этого запроса для хранения. И когда другой хэш (в этой группе) совпадает с сохраненным, значение должно быть получено из memcached.

Итак, мне нужно: имя таблицы, запрос и результат... Я думаю, что возможно расширить класс Database, реализовать кэш в методе execute(), но я не могу его найти!

Я правильно? Где находится метод execute()?

1 ответ

Я создал модуль Kohana 3, который выполняет это, но он должен использоваться вместе с построителем запросов. Он также использует Memcache для кэширования запросов. Это делает недействительным на вставки / обновления / удаления.

Вот ссылка:

Кохана Memcache Query Caching

Другие вопросы по тегам