Kohana 3 - Как использовать memcached для результатов запроса кеша? - PullRequest
0 голосов
/ 07 октября 2011

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

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

Pex:

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

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

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

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

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

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

1 Ответ

0 голосов
/ 06 декабря 2011

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

Вот ссылка:

Кэширование кэша Memcache Query

...