我使用redis作为我的Web缓存,我想直接将这些activerecord对象存储到redis,但是使用
redis-rb我收到一个错误.
似乎我无法序列化它或一些什么.有没有办法为我做这个?
我必须将其序列化为json格式吗?
哪种序列化格式是最有效的?
解决方法
Redis存储字符串(和一些其他数据结构的字符串);所以你可以序列化到Redis值,但是你只要最终得到一个字符串.
JSON可能是开始的最好的地方,因为它是精益的,而不是过分脆弱,适用于实时升级模式,并且是原位可读的.之后,您可以根据需要增加更多的复杂性来满足目标,例如压缩. #to_json和#from_json已经在ActiveRecord上,如果您要使用JSON(相对而言,YAJL或其ilk应该不会太慢).如果您进入S& M,那么#to_xml也在那里.
原始编组也可以工作,但偶尔会出现可怕的错误(在LZO压缩之后,我已经将封送的对象超过2MB,JSON中只有几个K).
如果这真的是您的瓶颈,您将需要使用自己的对象和数据模式,为您的目标(例如,写入速度,读取速度或存储大小)运行自己的效率测试.