2011-05-04 8 views
5

No entiendo cómo hacer una tienda permanente en Redis. Usar el hash de opciones es el único lugar que vi pasar en un camino, y no parece tener ningún efecto.¿Cómo puedo nombrar y almacenar mi conjunto de datos en redis?

> r = Redis.new({:options => {:path => '~/redis_store'}}) 
=> #<Redis client v2.2.0 connected to redis://127.0.0.1:6379/0 (Redis v2.9.0)> 
> r['foo'] 
=> "bar" 
> s = Redis.new({:options => {:path => '~/redis_store2'}}) 
=> #<Redis client v2.2.0 connected to redis://127.0.0.1:6379/0 (Redis v2.9.0)> 
> s['foo'] 
=> "bar" 

Respuesta

9

Redis es ya un almacén persistente, y la opción :path que has encontrado es la designación de un socket de unix a utilizar para comunicarse con el servidor Redis correr en lugar de una conexión TCP (apoyado en Redis 2.2), no designar un archivo de base de datos real.

¿Está tratando de tener bases de datos aisladas, de modo que cuando establezca r['foo'] = 'bar', s['foo'] todavía devuelva nil?

Si es así, Redis le permite conectarse a múltiples bases de datos numeradas, siendo el valor predeterminado # 0 (esto es lo que /0 está en). Para elegir una base de datos diferente:

r = Redis.new 
=> #<Redis client v2.2.0 connected to redis://127.0.0.1:6379/0 (Redis v2.9.0)> 
r['foo'] = 'bar' 

s = Redis.new(:db => 1) 
=> #<Redis client v2.2.0 connected to redis://127.0.0.1:6379/1 (Redis v2.9.0)> 
s['foo'] 
# => nil 
Cuestiones relacionadas