在redis或memcached(ruby)中存储复杂对象

在redis或memcached(ruby)中存储复杂对象,ruby,ruby-on-rails-3,activerecord,redis,memcached,Ruby,Ruby On Rails 3,Activerecord,Redis,Memcached,是否可以在不需要执行YAML::load/YAML::dump的情况下将复杂对象(即ActiveRecords)存储到redis或memcached之类的数据库中 我要找的是一个类似于全局var的东西 a) 在线程之间共享 b) 重新启动Web服务器时未刷新(这是可选的) a想要做的事情是创建一个缓存来存储几个方法的结果。目前我使用的是$global变量,但我担心在使用多线程Web服务器时会发生什么 此项目的代码可在此处找到: 我对每一个建议都很满意 我尝试使用Marshal而不是YAML来转

是否可以在不需要执行YAML::load/YAML::dump的情况下将复杂对象(即ActiveRecords)存储到redis或memcached之类的数据库中

我要找的是一个类似于全局var的东西 a) 在线程之间共享 b) 重新启动Web服务器时未刷新(这是可选的)

a想要做的事情是创建一个缓存来存储几个方法的结果。目前我使用的是$global变量,但我担心在使用多线程Web服务器时会发生什么

此项目的代码可在此处找到:


我对每一个建议都很满意

我尝试使用Marshal而不是YAML来转储数据,这产生了我可以处理的性能,所以我将尝试Marshal+Redis来解决这个问题

可能是重复的不,它不是。。。我对哈希数组等没有问题。。。我说的是存储一个包含600个ActiceRecord对象的阵列。。。如果要使用YAML::dump/YAML::load,性能会非常糟糕。。。当我试图通过缓存这些数据来加快速度时,没有任何好处。你需要序列化数组,这些
YAML
方法在Ruby中是这样做的吗?或者你可以修改你的代码,充分利用Redis结构。在这种情况下,重构是非常昂贵的-(处理这类问题更常见的方法是使用页面或片段缓存。我没有仔细查看该项目,如果您使用输出派生其他内容,它可能不容易为您工作-