我想在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"
为什么动作缓存不起作用?
答案 0 :(得分:2)
您可以尝试使用memcachier吗?
请参阅DevCenter中的Memcachier