Как я могу использовать кеш с Rails 5.2.1

#ruby-on-rails

#ruby-on-rails

Вопрос:

 Rails.cache.fetch(ranking_cache_key, expires_in: 12.hours) do
  data
end
 

Я хочу кэшировать данные ранжирования в Rails.cache. Сразу после этого кода я уверен, что смогу кэшировать данные, потому что они существуют? метод возвращает true. Но я выполнил команду «rails runner» во второй раз, я не получаю никаких данных кеша из приведенного ниже кода.

 Rails.cache.fetch(ranking_cache_key)
 

Как я могу кэшировать данные в течение 12 часов? Я использую Rails 5.2.1

и в файле среды разработки

 config.action_controller.perform_caching = true

config.cache_store = :memory_store, { size: 64.megabytes, expires_in: 12.minutes }

config.public_file_server.headers = {
  'Cache-Control' => "public, max-age=#{2.days.to_i}"
}
 

Комментарии:

1. Есть ли у вас эта строка в вашем development.rb файле? if Rails.root.join('tmp', 'caching-dev.txt').exist?

2. memory_store не разделяет кэшированные данные между процессами, попробуйте по-другому cache_store ? см guides.rubyonrails.org/v5.2 /…