как использовать memcache для ускорения рельсов / героку - PullRequest
7 голосов
/ 28 сентября 2010

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

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

Ответы [ 2 ]

4 голосов
/ 29 сентября 2010

Вы можете посмотреть Кэширование в Rails 2.1 и затем прочитать документацию memcached (я полагаю, вы уже прочитали ее) в Heroku.

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

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

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

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

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

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

  • Кэширование страниц
  • Кэширование действий
  • Кэширование фрагментов
  • Sweepers
  • Кэширование SQL
  • и более ...
0 голосов
/ 29 сентября 2010

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

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