2010-09-28 6 views
7

Heroku поддерживает memcache изначально как аддон. моя проблема заключается в том, что я еще новичок в рельсах, я не знаю, как использовать memcache, чтобы ускорить мой самый трудоемкий запрос (я знаю, что они ищут в новом анализе). следует ли использовать драгоценный камень, например «кеш-деньги» на верхней части memcache? кто-нибудь использует act_as_cached больше?Как использовать memcache для ускорения рельсов/heroku

Я знаю, что это довольно тривиальные вопросы. Однако после поиска в Интернете часами я не смог найти достойный учебник. Любая помощь/ссылка оценена!

+0

Кэширования является очень широкая тема, и вы можете делать много разных ее типов. Memcached ничего особенного; это всего лишь носитель данных для вещей, которые вы хотите кэшировать (поскольку mysql может быть вашим хранилищем для объектов, которые вы хотите быть постоянными). Другой тип кэширования может быть более подходящим для вашей конкретной страницы. В любом случае вам нужно предоставить нам более подробную информацию о вашем медленном запросе, чтобы получить достойные ответы. Что это за страница? Публичный или другой для каждого пользователя? Большую часть времени тратит на запрос базы данных или рендеринг представлений? – tfe

+1

+1 для этого вопроса. Я также ищу достойный рельс + учебник по memcache. –

ответ

4

Вы можете смотреть Caching in Rails 2.1 и затем читать memcached documentation (я полагаю, вы уже читали ее) в Heroku.

Кроме того, Touch and Cache представляет собой довольно интересную технику, чтобы избежать записи подметальных машин, чтобы удалить кешированный контент, когда вам нужно обновить кешированные данные. При использовании touch автоматически истечет кешированные данные, и почти не нужно писать новый код.

Пожалуйста, обратите внимание, что сегодня, интеграция Memcached Heroku предполагает, что вы используете Rails> = 2.3.3

Основная идея заключается в том, что вы добавляете результат (ы) метод к Rails.cache потребляющего вашего времени (который это интерфейс, через который вы получаете доступ к вашему механизму кэширования). Когда вы извлекаете этот результат (ы), механизм кэширования ищет, может ли он найти его или если он еще не истек.

Если он найдет его, он вернет его очень быстро, потому что он берет его из кеша.

Если он не находит его или он истек (вы устанавливаете это при вызове fetch), он запускает фактический медленный метод для его добавления или обновления в кеше.

Наконец, очень полезно прочитать документацию Rails, кроме того, используете ли вы memcached или встроенное кэширование Rails: Caching with Rails: An overview. Среди прочего, он говорит о том:

  • Кэширование страниц
  • кэширование Действия
  • Кэширование фрагментов
  • Подметальных
  • кэширование SQL
  • и многое другое ...
0

Вы можете кэшировать на кэше в action_cache или вы можете получить доступ к Memcache с Rails.cache

Смежные вопросы