2

我正在尝试在我的 rails 4 应用程序中实现缓存。我安装了redis,根据这篇文章设置配置,但是每次我尝试在控制器中缓存一些东西时,第一次刷新我得到数据,第二次我得到零。当我去 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 作为对我的行为的回应。

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

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

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

1 回答 1

1

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

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

:media_store - 取决于你要将缓存存储在哪里。

于 2019-06-04T07:27:37.137 回答