Memcached存储数据但Rails没有使用它

时间:2009-07-30 12:45:48

标签: ruby-on-rails ruby caching memcached

environment.rb中:

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

development.rb:

config.action_controller.perform_caching  = true

这是我调用网址时的memcached输出。

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根本不会产生任何memcached活动。 Rails将aktionen.xml写入公用文件夹,同时忽略expires_in和format参数。调用127.0.0.1:3000/aktionen会创建一个aktionen.html文件

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

你是否尝试过期超过5秒,只是为了确保数据没有过期才能测试它的存在?