关于heroku的dalli没有缓存

时间:2013-05-17 10:26:40

标签: heroku memcached dalli

我想在heroku上的rails应用程序中启用动作缓存。 在development.rb我设置:

  config.action_controller.perform_caching = true

并在日志中查看

Started GET "..." for 127.0.0.1 at 2013-05-17 14:03:25 +0400
...
Write fragment ... 
OR
Read fragment ... (0.2ms)

- > 为了转向生产,我通过$heroku addons:add memcache安装了memcache插件,在Gemfile中安装了新的gem:gem 'dalli'并更改了production.rb中的设置:

config.action_controller.perform_caching = true
config.cache_store = :dalli_store #, ENV['MEMCACHE_SERVERS'], { :namespace => 'myapp', :expires_in => 1.day, :compress => true }

我也尝试启用这两个注释参数,但无论如何我在日志中看不到Read/Write fragment ...个部分,我看到该应用程序经过身份验证,但缓存始终缺失

Started GET "..." for 195.178.108.38 at 2013-05-17 09:54:19 +0000
Dalli/SASL authenticating as myapp%40heroku.com
Dalli/SASL: Authenticated
cache: [GET ...] miss

正在运行$heroku run console我检查缓存是否正在加载:

irb(main):001:0> Rails.cache.read('color')
Dalli/SASL authenticating as myapp%40heroku.com
Dalli/SASL: Authenticated
=> nil
irb(main):002:0> Rails.cache.write('color', 'red')
=> true
irb(main):003:0> Rails.cache.read('color')
=> "red"

为什么动作缓存不起作用?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用memcachier吗?

  • 删除memcahe插件
  • 添加memcachier附加组件
  • 在您的宝石文件中添加“memcachier”宝石
  • 它应该“正常工作”

请参阅DevCenter中的Memcachier