2012-04-04 11 views
5

Estoy buscando algo donde pueda guardar todo un modelo basado en Rails almacenado en Redis. Hay objetos de Redis que se encuentran aquí, https://github.com/nateware/redis-objects pero que solo funcionan cuando su modelo ya está respaldado por algo como ActiveRecord y requiere un generador de identificación único. No deseo hacer un modelo respaldado por ActiveRecord, ya que quiero persistir todo directamente en la memoria y no en la base de datos.Rails respaldados por Redis modelo

¿Hay una caída de la herramienta que puedo usar en este momento que voy a dejarme hacer cosas como:

RedisBackedModel.find_by_name('foo')

y me voy a recuperar el RedisBackedModel de Redis?

Respuesta

6

He utilizado Ohm antes para almacenar las búsquedas que caducan después de un par de horas; es bastante agradable. Creo que DataMapper también tiene un redis adapter, aunque nunca lo he usado. Aquí hay un código de Ohm para lo que creo que está buscando:

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

¿Usted utilizó OHM con rieles? –

+0

Se están quejando "Desafortunadamente, no usamos ohm con los rieles (y nunca lo haremos)". https://github.com/soveran/ohm/issues/26 –

+0

@PravinMishra Sí, lo usé en un proyecto hace un par de años cuando acababa de salir Rails 3.0. Funciona bien. –