我在用:
Rails 4.1.0rc2
Heroku
gem 'memcachier'
gem 'dalli'
如果我从控制台使用缓存,它可以工作:
irb(main):010:0> Rails.cache.write("foo", "bar")
=> 1297036692682702848
irb(main):011:0> Rails.cache.read("foo")
=> "bar"
但是如果我在应用程序中使用 Rails.cache.fetch 设置缓存,并尝试通过控制台读取,我会得到这个。
Rails.cache.read([School, "California", [], School.where(state: "California").all.map(&:updated_at).max, "city_filters"])
Dalli::Server#connect mc3.dev.ec2.memcachier.com:11211
Dalli/SASL authenticating as 451265
Dalli/SASL authenticating as 451265
Dalli/SASL: 451265
Dalli/SASL: 451265
=> [{:type=>"city", :value=>"San Francisco", :count=>11, :current=>false}]
但是当我在应用程序中运行它时,它每次都会进行新的搜索。
Completed 200 OK in 8481ms (Views: 1151.4ms | ActiveRecord: 246.6ms)
缓存在本地工作(它不是完整的缓存)。
Completed 200 OK in 655ms (Views: 244.5ms | ActiveRecord: 74.5ms)
如何让 memcached/dalli 正常工作?我有这个在不同的应用程序中工作;对我来说似乎是同样的设置。