7

在开发或生产中,我无法从控制台看到缓存中的任何内容。

对于开发,我打开了缓存并将其设置为内存存储,在生产中我使用 Heroku 上的 dalli gem 和 Memcachier。

我尝试的每个键都返回零。

然而,在开发中,如果我binding.pry在某处我正在做 a 之前放入 a Rails.cache.fetch,我可以在Rails.cache.read那里做 a 并看到返回的东西,如果是这样,执行不会进入fetch' 块。

从控制台中,如果我尝试使用刚刚在断点控制台Rails.cache.read中返回缓存结果的相同键,我什么也得不到。pry似乎控制台有一个单独的缓存,就像我从控制台做的一样Rails.cache.write("whatever", "blah")Rails.cache.read("whatever")我得到“blah”作为回报,正如预期的那样。

有没有办法从控制台试验正在运行的服务器的缓存?

4

1 回答 1

5

更改您的缓存存储:内存存储只是将所有内容存储在进程的内存中,因此应用程序的每个实例都将具有单独的缓存。特别是控制台不会看到从正在运行的 Web 应用程序设置的任何内容。

您可以使用文件存储(将数据存储在 tmp 中的临时文件中),也可以在本地使用 dalli 存储 - memcached 非常易于运行。

于 2013-07-25T15:36:36.637 回答