Простое кэширование с помощью 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.