2011-05-04 3 views
5

Je ne comprends pas comment faire un magasin persistant dans Redis. Utiliser le hash des options est le seul endroit que j'ai vu passer dans un chemin, et cela ne semble pas avoir d'effet.Comment puis-je nommer et stocker mon ensemble de données dans 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" 

Répondre

9

Redis est déjà un magasin persistant, et l'option :path que vous avez trouvé est de désigner un socket unix à utiliser pour communiquer avec le serveur Redis en cours d'exécution au lieu d'une connexion TCP (pris en charge dans Redis 2.2), pas désigner un fichier de base de données réel.

Etes-vous en train d'essayer d'avoir des bases de données isolées, de sorte que lorsque vous définissez r['foo'] = 'bar', s['foo'] renvoie toujours nil?

Si tel est le cas, Redis vous permet de vous connecter à plusieurs bases de données numérotées, la valeur par défaut étant # 0 (c'est ce que le /0 est dans connected to redis://127.0.0.1:6379/0). Pour choisir une autre base de données:

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 
Questions connexes