Tengo un problema al almacenar un hash MessagePacked en Redis. He pegado un caso de prueba a continuación. Al extraer los datos empaquetados de Redis y desempacarlos, el hash está ligeramente dañado. Esto parece suceder cuando los valores hash están más allá de cierta longitud, aunque no puedo decir eso con seguridad.Almacenar un hash MessagePacked en Redis
Estoy usando Redis 2.4.17 (configuración predeterminada), Ruby 1.9.3p194, MessagePack 0.4.7, y Redis gem 3.0.2. El mismo problema ocurre con el nodo, así que supongo que el problema está en MessagePack o Redis. ¿Algunas ideas?
require 'redis'
require 'msgpack'
class Test
def self.run(url)
redis = Redis.new
data = {'number' => 13498935756, 'hash' => {'url' => url}}
redis.set('my_key', MessagePack.pack(data))
result = MessagePack.unpack(redis.get('my_key'))
puts result
puts result['hash']['url'] == data['hash']['url']
end
end
Test.run('http://fake.example.com') # works
=> {"number"=>13498935756, "hash"=>{"url"=>"http://fake.example.com"}}
=> true
Test.run('http://fakeurl.example.com') # does not work
=> {"number"=>13498935756, "hash"=>{"url"=>"ttp://fakeurl.example.com"}}
=> false