如何在Redis中命名和存储数据集?

5

我不太理解如何在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个回答

9
Redis已经是一个持久化存储,而你找到的:path选项是为了指定一个Unix套接字来代替TCP连接与运行中的Redis服务器通信(在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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接