如何在redis中命名和存储我的数据集?

时间:2011-05-04 22:55:31

标签: ruby-on-rails ruby 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" 

1 个答案:

答案 0 :(得分:9)

Redis已经是一个持久存储,你找到的:path选项是指定一个unix套接字用于与正在运行的Redis服务器通信而不是TCP连接(在Redis 2.2中支持),而不是指定一个实际的数据库文件。

您是否尝试使用隔离数据库,以便在设置r['foo'] = 'bar'时,s['foo']仍会返回nil

如果是这样,Redis允许您连接到多个编号的数据库,默认为#0(这是/0connected to redis://127.0.0.1:6379/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