2012-04-04 4 views
5

Я ищу что-то, где я могу хранить всю модель на основе Rails, хранящуюся в Redis. Есть объекты Redis, которые находятся здесь https://github.com/nateware/redis-objects, но это работает только тогда, когда ваша модель уже подкреплена чем-то вроде ActiveRecord, и для этого требуется уникальный генератор идентификаторов. Я не хочу создавать резервную модель ActiveRecord, поскольку я хочу сохранить все непосредственно в памяти, а не в базе данных.Redis backed Rails model

Есть ли падение инструмент, который я могу использовать прямо сейчас, что позволит мне делать такие вещи, как:

RedisBackedModel.find_by_name('foo')

, и он будет извлекать мне RedisBackedModel из Redis?

ответ

6

Раньше я использовал 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] 
+0

Вы использовали OHM with rails? –

+0

Они жалуются «К сожалению, мы вообще не используем ом с рельсами (и никогда не планируем)». https://github.com/soveran/ohm/issues/26 –

+0

@PravinMishra Да, я использовал его в проекте пару лет назад, когда Rails 3.0 только что вышел. Он работает нормально. –