Как использование updated_at в вашем ключе memcached позволяет избежать попаданий в БД? - PullRequest
0 голосов
/ 19 октября 2010

Читая о параметрах кэширования для Rails, я только что посмотрел эпизод Scaling Rails на memcached , где они рекомендуют использовать поле updated_at записи как часть ключа кэша.Это должно гарантировать, что когда блок кеша содержит содержимое записи, всякий раз, когда эта запись обновляется, он лишает законной силы этот блок кеша.

Я понимаю принцип, но если я знаю текущее время updated_atзапись, разве это не значит, что я недавно попал в БД?Как это помогает?

Казалось бы, это может быть полезно только в тех случаях, когда вы делаете несколько обращений к одной и той же записи в течение сеанса или строите представление, каждое с разными запросами, и только некоторые из нихдостойны ли кешаЭто намерение здесь?

1 Ответ

1 голос
/ 19 октября 2010

Мы используем эту технику с belongs_to …, :touch => true.

Это гарантирует, что если какой-либо из зависимых элементов испорчен, мастер также испорчен. Мы делаем это для Продукта - <Тип отношений. Один простой поиск по первичному ключу определяет, нужно ли нам загружать много других записей (и выполнять математику) или просто использовать кеш. </p>

Это не волшебная палочка, но она работает, и временные метки могут быть полностью перенесены в заголовки управления кэшем HTTP, сохраняя целые запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...