1

我目前正在使用 redis-store,但我很确定这是 Rails 做的,而不是 redis-store 做的。

每次请求时,我都会在缓存日志中看到这样的项目:

1339188014.237987 (db 1) "get" "cache:http://www.domain.com/?"
1339188107.318145 (db 1) "get" "cache:https://www.domain.com/login?"

(两个单独的请求)

我只使用片段缓存( <% cache 'some_key' do %>...<% end %> )

没有使用页面缓存或动作缓存。

那么,为什么 Rails 会查看这些键呢?我找不到设置这些键的痕迹,而且我已经验证它们是零。

4

1 回答 1

1

在看:

gems/activesupport-3.2.5/lib/active_support/cache.rb

在您的 ruby​​ 目录中(如果您不知道它在哪里并且在 UNIX/Mac 上,您可以which ruby在命令行上键入以找到 bin 目录,然后从那里开始。)

在那里抛出一个断点并调试它以查看调用堆栈。该日志来自第 526 行ActiveSupport::Cache::Store#log

当我调试它时,我发现它与 Metal 相关,并且它正在寻找页面的完全缓存版本。它看起来非常无害,如果您实际上没有进行页面缓存,那么它可能不会发生任何不好的事情。

于 2012-06-09T05:59:14.123 回答