【发布时间】:2014-07-30 12:30:37
【问题描述】:
Dalli::DalliError: Response error 130: Out of memory
from /bundled_gems/ruby/1.9.1/gems/dalli-2.7.0/lib/dalli/server.rb:496:in cas_response' from /bundled_gems/ruby/1.9.1/gems/dalli-2.7.0/lib/dalli/server.rb:275:inblock in set'
from /bundled_gems/ruby/1.9.1/gems/dalli-2.7.0/lib/dalli/server.rb:459:in guard_max_value' from /bundled_gems/ruby/1.9.1/gems/dalli-2.7.0/lib/dalli/server.rb:272:inset'
from /bundled_gems/ruby/1.9.1/gems/dalli-2.7.0/lib/dalli/server.rb:60:in request' from /bundled_gems/ruby/1.9.1/gems/dalli-2.7.0/lib/dalli/options.rb:18:inblock in request'
from /usr/lib64/ruby/1.9.1/monitor.rb:211:in mon_synchronize' from /bundled_gems/ruby/1.9.1/gems/dalli-2.7.0/lib/dalli/options.rb:17:inrequest'
from /bundled_gems/ruby/1.9.1/gems/dalli-2.7.0/lib/dalli/client.rb:323:in perform' from /bundled_gems/ruby/1.9.1/gems/dalli-2.7.0/lib/dalli/client.rb:103:inset'
from (irb):13
from /usr/bin/irb:12:in `'
有人可以解释这个错误吗?我看到 memcache 中有很多空白空间,但我仍然收到几个键的这个错误。
【问题讨论】:
-
似乎某些值的有效负载超出了
:value_max_bytes选项。见:github.com/mperham/dalli/blob/master/lib/dalli/server.rb#L22 -
但是当我用不同的键尝试相同的值时它成功了。
-
那么问题可能出在密钥长度/大小上?实际钥匙有多大?密钥中是否有任何多字节字符?这是一个参考,说密钥大小最多为 250 个字符:github.com/memcached/memcached/blob/master/doc/protocol.txt#L47
-
密钥大小非常小,大约 30 个字符,并且没有空格,并且在 100 次重试后设置了相同的密钥..
标签: ruby-on-rails memcached dalli