我无法在开发或生产中从控制台中看到缓存中的任何内容。
对于开发,我已经打开缓存并将其设置为内存存储,在生产中我在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”作为回报,正如预期的那样。
有没有办法从控制台试验正在运行的服务器的缓存?
答案 0 :(得分:4)
更改缓存存储:内存存储只将所有内容存储在进程的内存中,因此应用程序的每个实例都将具有单独的缓存。特别是控制台不会看到正在运行的Web应用程序中设置的任何内容。
您可以使用文件存储(将数据存储在tmp中的临时文件中),也可以在本地使用dalli存储 - memcached非常容易运行。