如何设置和获取存储在Redis中的对象?

时间:2011-08-13 20:34:58

标签: ruby-on-rails ruby redis

我正在尝试将对象存储在redis中,当我得到该对象时,它似乎无法工作。

我试过了:

u = User.new
u.name = 'blankman'

$redis.set('test', u)

x = $redis.get('test')

x.name  // error

我想这是一个序列化问题,我是否必须对我的模型做一些特殊的事情才能序列化?

2 个答案:

答案 0 :(得分:6)

我建议使用Marshal.dumpMarshal.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

亲切的问候