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

Jer*_*ith 5 ruby ruby-on-rails 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" 
Run Code Online (Sandbox Code Playgroud)

Dyl*_*kow 9

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

您是否正在尝试拥有独立的数据库,以便在设置r['foo'] = 'bar's['foo']仍然可以返回nil

如果是这样,Redis允许您连接到多个编号的数据库,默认为#0(这就是它所/0在的connected 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
Run Code Online (Sandbox Code Playgroud)