2011-05-04 37 views
5

我不理解如何在Redis中创建持久存储。使用选项散列是我看到在路径中传递的唯一位置,它似乎没有任何影响。如何命名和存储我的数据集在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" 

回答

9

的Redis已经是一个持久存储,并且你发现:path选项来指定一个Unix套接字使用去跟运行Redis的服务器代替TCP连接(在Redis的2.2支持)的,不指定一个实际的数据库文件。

你们是不是要能够有独立的数据库,这样,当你设置r['foo'] = 'bar's['foo']仍然返回nil

如果是这样,Redis允许您连接到多个编号的数据库,缺省值为#0(这是中的/0)。要选择不同的数据库:

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 
相关问题