我不了解如何在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"
答案 0 :(得分: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