在memcached中存储ActiveRecord对象的最佳方法是什么?

目前在memcached中存储ActiveRecord对象存在两个问题。

  1. 未定义的类/模块问题( Google搜索 )。 从我读过的内容来看,这仍然是一个没有人有真正好的解决方案的错误。 cache_fu插件可能是最好的解决方案,将其检索调用包装在试图捕获此错误的块中,解析消息并尝试加载未定义的类/模块。

  2. 臭名昭着的LH票#1339( LH票 )。 只有在cache_classes设置为FALSE(开发,测试)时才会发生此错误。

谷歌搜索几周后,我仍然没有找到一个很好的技术来存储AR实例在memcached中,而不必处理上面列出的2个问题。

我还没有尝试过的想法是从实例中删除属性作为字符串(只是AR在进行类型转换之前如何从DB接收它们),将它们存储在memcached中然后从缓存中检索,以某种方式实例化AR使用这些值的对象。 这可能吗? 如果是这样,最好的方法是什么?

我只是在寻找其他Rails开发人员解决这个问题的方法。

在我们的项目中,我们将对象存储为XML。

cache.write(user.cache_key, user.to_xml) # write to cache User.new(Hash.from_xml(cache.read(cache_key))) # reach from cache xml 

序列化/反序列化XML需要额外的成本。 但这使我们能够在非Ruby应用程序之间共享缓存。