【问题标题】:How to set and get an object stored in Redis?如何设置和获取存储在 Redis 中的对象?
【发布时间】:2011-10-26 13:19:32
【问题描述】:

我正在尝试将一个对象存储在 redis 中,当我得到该对象时它似乎不起作用。

我试过了:

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

$redis.set('test', u)

x = $redis.get('test')

x.name  // error

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

【问题讨论】:

    标签: ruby-on-rails ruby redis


    【解决方案1】:

    我建议使用Marshal.dumpMarshal.load 分别序列化和反序列化对象。

    $redis.set 'key', (Marshal.dump object) #serialize
    object = Marshal.load($redis.get 'key') #deserialize
    

    【讨论】:

      【解决方案2】:

      据我所知,redis 将保存对象的字符串表示形式。所以...

      x.class # String
      

      在使用 Redis 时,您必须使用一些东西来序列化/反序列化您的对象。看看https://github.com/nateware/redis-objects

      亲切的问候

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-09
        • 1970-01-01
        • 1970-01-01
        • 2014-12-04
        • 2016-10-22
        • 2012-08-16
        相关资源
        最近更新 更多