Задача
Я получаю сообщение об ошибке:
key too long "rack:session:BAh7...."
/usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/memcache-client-1.8.5/lib/memcache.rb:703:in `get_server_for_key'
/usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/memcache-client-1.8.5/lib/memcache.rb:920:in `request_setup'
/usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/memcache-client-1.8.5/lib/memcache.rb:885:in `with_server'
Когда я смотрел на memcache-client-1.8.5 / lib / memcache.rb: 703
def get_server_for_key(key, options = {})
raise ArgumentError, "illegal character in key #{key.inspect}" if key =~ /\s/
raise ArgumentError, "key too long #{key.inspect}" if key.length > 250
...
end
Также в соответствии с http://code.google.com/p/memcached/wiki/FAQ#What_is_the_maxiumum_key_length?_(250_bytes) максимальная длина составляет 250 байтов.
Так как это производственный процесс, и довольно сложно воспроизвести эту ошибку, я подумал, что могу спросить здесь, была ли у кого-то такая же проблема раньше.
Вопрос 1: Можно ли удалить оператор из клиента memcache?
Вопрос 2: Есть ли способ уменьшить размер ключа в рельсах? Я использую ниже в моей продукции. RB
config.action_controller.session_store = :mem_cache_store