我正在使用 redis 作为我的网络缓存,我想将那些 activerecord 对象直接存储到 redis,但是使用 redis-rb我收到一个错误。
好像不能序列化什么的。有没有为我做这个的库? 我必须将它序列化为 json 格式吗?
哪种序列化格式最有效?
最佳答案
Redis 存储字符串(以及其他一些字符串数据结构);因此您可以随心所欲地序列化为 Redis 值,只要您以字符串结尾即可。
JSON 可能是最好的起点,因为它精简、不太脆弱、适用于实时升级模式,并且在原地可读。稍后您可以根据需要添加更多复杂性以满足您的目标,例如压缩。 #to_json 和 #from_json 已经在 ActiveRecord 上了,如果你想使用 JSON(相对来说,使用 YAJL 或它的同类产品应该不会太慢。)#to_xml 也在那里,如果你喜欢 S&M。
原始编码也可以工作,但偶尔会出现可怕的错误(在 LZO 压缩后,我的编码对象超过 2MB,而在 JSON 中只有几 K。)
如果这对您来说真的是一个瓶颈,您将需要针对您的目标运行您自己的效率测试,例如,写入速度、读取速度或存储大小,使用您自己的对象和数据模式。
关于ruby-on-rails - 如何将rails的activerecord对象保存到redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5113008/