Ho riscontrato un problema durante l'archiviazione di un hash MessagePacked in Redis. Ho incollato un caso di test qui sotto. Quando estrae i dati compressi da Redis e li spacchetta, l'hash è leggermente danneggiato. Questo sembra accadere quando i valori hash sono oltre una certa lunghezza, anche se non posso dirlo con certezza.Memorizzazione di un hash di MessagePacked in Redis
Sto usando Redis 2.4.17 (configurazione di default), Ruby 1.9.3p194, MessagePack 0.4.7 e Redis gemma 3.0.2. Lo stesso problema si verifica usando il nodo, quindi presumo che il problema sia in MessagePack o Redis. Qualche idea?
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