我在Ruby on Rails 3应用程序中使用Memcached。它与动作和片段缓存一起工作得很好,但是当我尝试使用页面缓存时,页面存储在文件系统中而不是在Memcached中。如何告诉Rails使用Memcached进行页面缓存?
在我的发展。rb文件:
config.action_controller.perform_caching = true
config.cache_store = :mem_cache_store
你不能。memcached中与页面缓存等价的是操作缓存,因为请求必须通过Rails提供。页面缓存意味着绕过Rails,因此数据必须存储在可以从服务器提供服务的文件中,如Nginx或Apache。页面缓存如此之快的原因是它完全绕过了Rails。以下是Rails文档中所说的:
页面缓存是一种Rails机制哪一个允许请求生成的页面将由web服务器(即apache或nginx),而不需要经历Rails栈。显然,这是超快。不幸的是,这不可能适用于任何情况(例如……需要身份验证的页面)和因为web服务器实际上只是从文件系统中提供文件,缓存过期是一个问题需要处理
你可以在这里找到更多信息
check this:
http://globaldev.co.uk/2012/06/serving_memcached_pages_from_nginx/缩短它,安装"memcaches_page" gem(将其添加到GemFile然后捆绑),然后将caches_page指令更改为memcaches_page,然后配置Nginx在访问应用程序之前提供页面memcached服务器(在文章中描述)。