MessagePack giao dịch bằng byte thô, được đánh dấu là mã hóa 'ASCII-8BIT'. Tuy nhiên, dữ liệu đã đóng gói của bạn sẽ trở lại từ Redis được đánh dấu là ở mã hóa UTF-8. Để MessagePack giải nén thành công, bạn cần buộc nó trở lại được hiểu là các byte thô.
Do đó, hãy thay đổi dòng này ...
result = MessagePack.unpack(redis.get('my_key'))
đến một cái gì đó như thế này ...
redis_val = redis.get('my_key').force_encoding('ASCII-8BIT')
result = MessagePack.unpack(redis_val)