Rails.cache.fetch返回nil

时间:2019-05-11 22:35:22

标签: ruby-on-rails ruby-on-rails-4 redis-rails

我正在尝试在Rails 4应用程序中实现缓存。我按照此article安装了redis和setup config,但是每次尝试在控制器中缓存某些内容时,第一次刷新时我都会获取数据,第二次刷新时我会得到nil。 当我转到redis cli并执行KEYS *时,我看到那里的钥匙。

我认为这是我的redis问题,因此我禁用了redis,并在development.rb中放了

config.cache_store = :memory_store, { size: 128.megabytes }

但是如果我尝试

Rails.cache.fetch("dashboard") do
   User.where(:active=>true).size
end

我对行动的反应为零。

我做错了什么,缓存总是返回nil?

编辑:这是我的redis development.rb文件的一部分

config.cache_store = :redis_store, {
  expires_in: 1.hour,
  namespace: 'cache',
  redis: { host: 'localhost', port: 6379, db: 0 },
  }

1 个答案:

答案 0 :(得分:0)

这没什么,但是没有存储高速缓存。因此,您必须检查它的配置。 例如。在您的环境文件中,您应该具有以下代码片段:

config.action_controller.perform_caching = true
config.cache_store = :media_store

:media_store-取决于要在何处存储缓存。