使用Dalli缓存大型ActiveRecord对象

时间:2014-02-24 09:56:18

标签: ruby-on-rails caching activerecord store dalli

我无法缓存大型ActiveRecord对象。对于小的,没关系:

sel = Car.select("id, `key`, value").limit(1000)
Rails.cache.write('miauuu', sel)
=> true

但如果他们变得更大:

sel = Car.select("id, `key`, value").limit(10000)
Rails.cache.write('miauuu', sel)
=> false

虽然大小不是很高

ObjectSpace.memsize_of(sel)
=> 272

我正在使用 Dalli 缓存商店:

Rails.application.config.cache_store
 => :dalli_store

我甚至确保生产中的最大值应该足够大.rb 有这个:

config.cache_store = :dalli_store, { value_max_bytes: 2000000 }

然而,我在这里变得虚假:

Rails.cache.write('miauuu', sel)
=> false

知道为什么吗?感谢

1 个答案:

答案 0 :(得分:0)

确保同时更新服务器上的Memcached配置,通常位于/etc/memcached.conf中,并使用正确的设置:

-I 2M