Rails.cache.write返回nil

时间:2015-07-15 03:01:34

标签: ruby-on-rails caching heroku memcached

我正在使用Memcached Cloud插件在Heroku上运行rails应用程序。该应用程序是由开发人员设立的,现在已经很久了。

我正在尝试使用memcache来存储一些临时数据,但我无法让它工作。最令人困惑的是我对Rails.cache.write的调用,每次都返回nil。

我不想只是跳进去混淆缓存设置,因为它看起来确实有效,这个应用程序足够大且足够复杂,我不想冒任何风险。

我已经google了一段时间,但是这个nil返回似乎没有记录的行为(它是零,不是假的)。

控制台输出:

$>heroku run rails console -app <myapp>
...
irb(main):002:0> Rails.cache.write("foo","bar")
Dalli::Server#connect pub-memcache-16992.xxxxxxxxx.com:16992
Dalli/SASL authenticating as memcached-appxxxxxxx
Dalli/SASL: Authenticated
=> nil

enviromments / production.rb

config.cache_classes = true
config.cache_store = :mem_cache_store,
                   ENV["MEMCACHEDCLOUD_SERVERS"].split(','),
                   { :username => ENV["MEMCACHEDCLOUD_USERNAME"],   :password => ENV["MEMCACHEDCLOUD_PASSWORD"] }

的Gemfile:

gem 'dalli'

欢迎任何想法。

1 个答案:

答案 0 :(得分:1)

捂脸

缓存已满,因此无法写入,nil是底层dalli客户端的文档响应。