В чем смысл лака и Rack-Cache для приложения Rails?

Я немного смущен назначением лака и стоечного кэша для приложения Rails. В config/environments/production.rb кэширование можно установить с помощью чего-то вроде

config.static_cache_control = "public, max-age=3600"

учитывая это, какова именно цель лака и Rack-Cache, если вы можете установить кэширование в самом приложении Rails?

и что заставляет приложение Rails по умолчанию использовать rack-cache?

1 ответов


статический контроль кэша влияет на заголовки http для контроля кэша. Как и в, сервер предлагает промежуточным кэшам, что max-age=3600.

лак, Rack-Cache, Squid и другие активно кэшируют генерируемый контент на сервере. Вызовы базы данных дороги и, даже если запрос не делает вызов БД,чем меньше инфраструктуры запрос должен пройти, как правило, тем быстрее это будет.

Rack:: Cache-промежуточное ПО rack, поддерживающее HTTP совместимый кэширование стандартов. Их страница FAQ имеет некоторую хорошую информацию о его плюсах и минусах по сравнению с другими решениями кэширования. Вот вопрос сравнения стойки:: кэш для лака на heroku. Rails также имеет ActiveSupport:: Cache, который обрабатывает кэширование фрагментов и страниц. Я не уверен, каковы различия, но оба включены в Rails по умолчанию. Ранее я сказал, что rack:: cache не был по умолчанию, но я ошибался.

лак, Кальмар и другие существуют вне стека Rails перед веб-сервером (например, Apache/Nginx / etc) как отдельный процесс. Они сильно конфигурируемы, применение независимо, и имеют некоторые предварительные особенности (как ACL кальмара). Лак и другие имеют преимущество минимизации инфраструктуры, через которую должен пройти запрос, чтобы получить обслуживание. Если он свежий, запрос попадает в лак и сразу возвращается клиенту. Это, вероятно, имеет наибольшее преимущество для сайтов с высоким трафиком и может быть излишним для небольших приложения.

вот статья о heroku детализация использования rack:: cache в Rails3. Есть также некоторые хорошие railscasts по кэшированию страниц / фрагментов в приложении и по использованию memcached в качестве бэкэнда(что очень важно). Для varnish и других, вы можете начать с этот учебник на сайте лака.