有添加命名空间Redis的两个流行的宝石:Redis的命名空间和鸟巢 ,如果我真的能理解我们需要命名空间时,我们使用不同的Redis项目的同一实例的服务器,如果我是对的,这意味着:如果我有项目- 1和项目2和每个项目的用我的本地Redis的存储,那么也许这两个项目具有represente我的应用程序的用户的用户的关键,因此要防止我需要命名空间的用户关键的东西,如项目的名称冲突:
项目1:
project-1:users
项目-1
project-2:users
如果我的理解上面是没有错的,我们可以使用redis-namespace gem
来解决这个是这样的:
r = Redis::Namespace.new(:project-1, :redis => @r)
r['users']['joe']['email'] = 'joe@example.com'
而对于第二个项目(项目2)只需要实例化时,新的Redis ::命名空间来改变项目1到项目2:
r = Redis::Namespace.new(:project-2, :redis => @r)
r['users']['joe']['email'] = 'joe@example.com'
请告诉我,如果我没有错这一切上面的解释!
我们现在可以继续巢:
从文档 ,我们有这样的例子:
鸟巢可以帮助您通过提供已经连接到Redis的环连接的命名空间生成密钥:
>> event = Nest.new("event")
>> event[3][:attendees].sadd("Albert")
>> event[3][:attendees].smembers
=> ["Albert"]
但在这里,我不知道如果Nest帮我们做同样的事情Redis的命名空间,或帮助我们只是产生一个可链接键???
究竟是什么Redis的命名空间和鸟巢之间的区别?