我正在尝试将对象存储在redis中,当我得到该对象时,它似乎无法工作。
我试过了:
u = User.new
u.name = 'blankman'
$redis.set('test', u)
x = $redis.get('test')
x.name // error
我想这是一个序列化问题,我是否必须对我的模型做一些特殊的事情才能序列化?
答案 0 :(得分:6)
我建议使用Marshal.dump
和Marshal.load
分别序列化和反序列化对象。
$redis.set 'key', (Marshal.dump object) #serialize
object = Marshal.load($redis.get 'key') #deserialize
答案 1 :(得分:1)
据我所知,redis将保存对象的String表示形式。所以......
x.class # String
使用Redis时,必须使用某些东西来序列化/反序列化对象。看看https://github.com/nateware/redis-objects
亲切的问候