将数组存储在Redis中 - RoR 4

时间:2014-08-25 23:47:06

标签: ruby-on-rails ruby redis

我有一个Item模型。有一种方法可以将所有itens(Item.all)存储在Redis数据库中吗?我试过这个:

$redis = Redis::Namespace.new("suggestme", :redis => Redis.new)

$redis.set("itens", Item.all)

但是当我检索到它时:

$redis.get("itens")

我得到一个String" #Item :: ActiveRecord_Relation:0x007fe399d6e550"

想法是将完整的itens数组存储在其中

1 个答案:

答案 0 :(得分:0)

Redis仅存储字符串值。如果要存储其他类型的对象,则必须使用编组。有一个名为Marshal的内置ruby类,它可以帮助你实现它。

$redis.set("itens", Marshal.dump(Item.all))
Marshal.load($redis.get("itens"))