Простое кэширование с помощью Rails 4 + Heroku + Redis

Добавьте кеширование или свое приложение Rails всего за несколько минут!

1. Добавьте гем Redis в свой Gemfile.

gem 'redis-rails'

2. Обновите среду production.rb.

Я рекомендую использовать переменную среды REDIS_URL в качестве переключателя, чтобы решить, использовать ли :redis_store.

config.cache_store = :redis_store if ENV['REDIS_URL']

3. (Необязательно) Обновите среду development.rb.

Это даст вам быстрый и простой способ протестировать кеширование локально. Если ваши локальные переменные среды содержат REDIS_URL, кеширование будет включено, в противном случае оно будет отключено (это значение по умолчанию для development.rb).

if ENV['REDIS_URL']
  config.action_controller.perform_caching = true
  config.cache_store = :redis_store
else
  config.action_controller.perform_caching = false
end

4. Сохраните несколько просмотров!

В этом примере используется представление jbuilder:

json.cache! [‘api’, ‘v1’, @posts], expires_in: 1.month do
  json.posts(@posts, partial: 'api/v1/posts/post', as: :post)
end

Строка 1 выше сообщает jbuilder, что мы хотим создать ключ кеша со значениями «api», «v1» и автоматически сгенерированной строкой на основе текущего набора сообщений, которые мы собрали для отображения. Например, ключ кеша может выглядеть примерно так: api-v1-posts-2015123001253. Мы также устанавливаем срок действия этого конкретного кешированного представления через месяц.

Строка 2 выше - это код, позволяющий jbuilder фактически визуализировать наше представление. Мы говорим jbuilder, чтобы он выводил json с ключевыми «сообщениями», и чтобы он был массивом на основе сообщений, которые мы ему передаем.

5. Добавьте в свое приложение аддон Heroku Redis.

Если вы хотите использовать вместо этого свою консоль:

heroku addons:create heroku-redis:hobby-dev

6. Разверните приложение и наслаждайтесь улучшенным временем рендеринга!

Если вам понравился этот урок, порекомендуйте его и не стесняйтесь по электронной почте или в твиттере @ianhirschfeld.