来自控制台的Rails缓存没有返回任何内容

时间:2013-07-25 15:10:17

标签: ruby-on-rails caching rails-console

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

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

我尝试的每一把钥匙都回来了。

然而,在开发过程中,如果我在binding.pry之前放置Rails.cache.fetch,我可以在那里做Rails.cache.read并看到返回的内容,如果是的话,执行不会进入fetch的阻止。

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

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

1 个答案:

答案 0 :(得分:4)

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

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