我正在寻找可以将整个基于Rails的模型存储在Redis中的东西。在https://github.com/nateware/redis-objects中可以找到Redis对象,但是仅当模型已经由ActiveRecord之类的东西支持并且需要唯一的id生成器时,该Redis对象才有效。我不想创建一个ActiveRecord支持的模型,因为我想将所有内容直接持久存储在内存中而不是数据库中。

我现在可以使用一个下降的工具,该工具可以使我执行以下操作:
RedisBackedModel.find_by_name('foo')
它会从Redis检索我的RedisBackedModel吗?

最佳答案

我以前使用Ohm来存储几个小时后到期的搜索。很好我认为DataMapper也有一个redis adapter,尽管我从未使用过。以下是一些我认为您想要的欧姆代码:

class RedisBackedModel < Ohm::Model
  attribute :name
  index :name
end

rbm = RedisBackedModel.create :name => "foo"
rbm.id # => 1

# Search by name:
RedisBackedModel.find(:name => "foo")

# Search by id (like AR-style model.get(id)):
RedisBackedModel[1]

10-06 06:00