2009-07-30 100 views
0

environment.rb中:Memcached的存储数据,但Rails的不使用它

config.cache_store = :mem_cache_store, '127.0.0.1', { :namespace => RAILS_ENV.to_s } 

development.rb:

config.action_controller.perform_caching = true 

这是memcached的输出当我打电话的URL。

get development:views/127.0.0.1:3000/aktionen.xml发送密钥开发:views/127.0.0.1:3000/aktionen.xml END set development:views/127.0.0.1:3000/aktionen.xml 0 60 3 STORED

控制器

caches_action :index, :expires_in => 5.seconds, :layout => false, :format => :xml 

信息

cache_pages不产生分布式缓存活动的。 Rails将aktionen.xml写入公用文件夹,同时也忽略expires_in和format参数。调用127.0.0.1:3000/aktionen创建一个aktionen.html文件

回答

3

Rails(从2.1开始)为由动作和片段缓存创建的缓存数据提供不同的存储。页面缓存总是存储在磁盘上。

动作缓存与页面缓存非常相似,唯一的区别是对页面的请求将始终打到您的rails服务器并且您的过滤器将始终运行。要设置动作缓存我们的控制器可能是这样的:

class BlogController < ApplicationController 
    layout 'base' 
    before_filter :authenticate # <--- Check out my authentication 
    caches_action :list, :show 

此处了解详情:http://railsenvy.com/2007/3/20/ruby-on-rails-caching-tutorial-part-2

+0

所以..这个答案有帮助吗? – 2009-07-31 21:13:20

0

你试过加大了到期时超过5秒更大的事物,只是为了确保数据没有过期在你能测试它的存在之前?

相关问题