我在Ruby on Rails 3应用程序中使用Memcached.它适用于动作和片段缓存,但是当我尝试使用页面缓存时,页面存储在文件系统中而不是存储在Memcached中.如何告诉Rails也使用Memcached进行页面缓存?
在我的development.rb文件中:
config.action_controller.perform_caching = true config.cache_store = :mem_cache_store
Pan Thomakos.. 8
你不能.memcached中的页面缓存等效于动作缓存,因为必须通过Rails提供请求.页面缓存旨在绕过Rails,因此数据必须存储在可以从服务器提供的文件中,如Nginx或Apache.页面缓存如此之快的原因是它完全绕过了Rails.以下是Rails文档所说的内容:
页面缓存是一种Rails机制,它允许Web服务器(即apache或nginx)完成对生成页面的请求,而根本不需要通过Rails堆栈.显然,这是超级快的.不幸的是,它不能应用于所有情况(例如需要身份验证的页面),并且由于Web服务器实际上只是从文件系统提供文件,因此缓存过期是一个需要处理的问题.
您可以在此处找到更多信息.
你不能.memcached中的页面缓存等效于动作缓存,因为必须通过Rails提供请求.页面缓存旨在绕过Rails,因此数据必须存储在可以从服务器提供的文件中,如Nginx或Apache.页面缓存如此之快的原因是它完全绕过了Rails.以下是Rails文档所说的内容:
页面缓存是一种Rails机制,它允许Web服务器(即apache或nginx)完成对生成页面的请求,而根本不需要通过Rails堆栈.显然,这是超级快的.不幸的是,它不能应用于所有情况(例如需要身份验证的页面),并且由于Web服务器实际上只是从文件系统提供文件,因此缓存过期是一个需要处理的问题.
您可以在此处找到更多信息.