Кэширование страниц с Memcached - PullRequest
4 голосов
/ 27 апреля 2011

Я использую Memcached в своем приложении Ruby on Rails 3.Он отлично работает с кэшированием действий и фрагментов, но когда я пытаюсь использовать кэширование страниц, страница сохраняется в файловой системе, а не в Memcached.Как я могу указать Rails использовать Memcached для кэширования страниц?

В моем файле development.rb:

config.action_controller.perform_caching = true
config.cache_store = :mem_cache_store

Ответы [ 2 ]

8 голосов
/ 27 апреля 2011

Ты не можешь.Эквивалентом кэширования страниц в memcached является кэширование действий, поскольку запрос должен обслуживаться через Rails.Кэширование страниц предназначено для обхода Rails, поэтому данные должны храниться в файле, который может обслуживаться с сервера, например, Nginx или Apache.Кэширование страниц по той причине, что оно так быстро, заключается в том, что оно полностью обходит Rails.Вот что говорится в документации по Rails:

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

Вы можете найти больше информации здесь .

0 голосов
/ 02 сентября 2013

отметьте это:

http://globaldev.co.uk/2012/06/serving_memcached_pages_from_nginx/

Вскоре вырежьте его, установите гем "memcaches_page" (добавьте его в GemFile, затем связывайте), затем измените директиву caches_page на memcaches_page, затем настройте Nginx наобслуживать страницу memcached сервером перед попаданием в приложение (описано в статье).

...