如何将rails的activerecord对象保存到redis

Mik*_* Li 9 ruby activerecord ruby-on-rails redis ruby-on-rails-3

我使用redis作为我的web缓存,我想直接将这些activerecord对象存储到redis,但是使用redis-rb我得到一个错误.

似乎我无法将其序列化或某些内容.是否有一个lib为我这样做?我必须将其序列化为json格式吗?

哪种序列化格式最有效?

Yur*_*dow 14

Redis存储字符串(以及一些其他字符串数据结构); 因此,只要你最终得到一个字符串,你就可以序列化为Redis值.

JSON可能是最好的起点,因为它很精简,不会过于脆弱,适用于实时升级模式,并且可以就地读取.之后,您可以根据需要添加更多复杂性以满足您的目标,例如压缩.#to_json和#from_json已经在ActiveRecord上了,如果你想使用JSON(相对来说,YAJL或者其类似的不应该过慢).如果你是S&M,#to_xml也在那里.

原始编组也可以工作,但偶尔会出现可怕的错误(在LZO压缩后,我的编组对象超过2MB,JSON只有几K.)

如果它确实是您的瓶颈,您将需要针对您的目标运行自己的效率测试,例如,写入速度,读取速度或存储大小,以及您自己的对象和数据模式.