检查Rails缓存内容的方法?

时间:2016-03-23 04:36:34

标签: ruby-on-rails

我正在尝试在Heroku上运行的Rails(5.0.0.beta2)中调试缓存视图中的陈旧条目。我想查看缓存中的条目,以确认它们的命名方式与我预期的方式相同,并且应该在到期时过期。

有没有办法做到这一点?我发现了这个问题,HOW do i see content of rails cache,建议Rails.cache.read("your_key")。所以,使用bin/rails c(在Heroku上)我尝试了:

Rails.cache.read(User.find(19).cache_key) => nil

其中19是我看到陈旧数据的用户之一的:id。这让我有点难过......

如果我尝试:

User.find(19).cache_key => "users/19-20160316151228266421"

但是当一个缓存条目被认为过期时,日志行看起来像:

Expire fragment views/users/19-20160316151228266421 (0.2ms)

所以我尝试在该路径上执行Rails.cache.read,这也返回nil - 我也尝试对未过期的用户执行相同操作,并再次获得nil

我想知道路径中的差异是否表示存在问题,或者是否有办法查看创建的密钥的路径(我一直假设它至少匹配斜杠之后的部分)。

1 个答案:

答案 0 :(得分:1)

Cache具有以下实例变量:

[:@options, :@data, :@key_access, :@max_size, :@max_prune_time, :@cache_size, :@monitor, :@pruning]

您可以使用以下方式检查数据:

Rails.cache.instance_variable_get(:@data)