Rails 3 кеш вопросы - PullRequest
       10

Rails 3 кеш вопросы

0 голосов
/ 07 марта 2012

Скажем, я хочу использовать dalli store для кэширования (фрагментов) представлений.Означает ли это, что при выполнении чего-то подобного также будет использоваться memcache для возможного кэширования БД?

Rails.cache.fetch("something") { smth }

Кроме того, если я сделаю что-то вроде:

Author.all

, консоль Rails покажет мне, чтоон запрашивает базу данных, но если я снова запустите Author.all, это покажет мне, что результаты получены из кэша.Когда я хочу явно использовать Rails.cache и когда мне следует полагаться на ActiveRecord для выполнения кэширования?

1 Ответ

1 голос
/ 07 марта 2012

Операции выборки и чтения получают элементы из кэш-память, которая в данный момент настроена, например из файловой системы, если кеш Магазин :file_store, или из Memcached сервер, если в магазине :mem_cache_store. Поэтому, если вы хотите использовать Memcached для Кэширование фрагментов, вы должны настроить cache_store соответственно:

ActionController::Base.cache_store = :mem_cache_store, "cache-1.example.com"

Рекомендуется использовать кеширование фрагмента если один имеет большие, сложные взгляды с участием многих запросы, которые меняются редко или медленно. Fragement кэширование является хорошим компромиссом между полностью статические страницы (быстрые, но фиксированные) и динамические страницы (медленно, но переменно). Если вам нужно кэшировать определенный раздел страница вместо всей страницы, кэширование фрагментов идти, как сказал Райан Бейтс в своем Railscast о кэшировании фрагментов .

Кэширование страниц и действий еще лучше, они великолепны для ускорения работы страницы, но проблематично если он содержит пользовательский контент. В этом случае можно использовать динамическое кэширование страниц . Переполнение стека использует похожую технику.

Кэширование SQL сохраняется только в течение одно действие.

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