redis实例只能用于1个项目吗?

时间:2010-07-11 16:19:29

标签: ruby-on-rails redis

我正在使用带有redis的Rails。

从Redis的介绍中,我发现了这样的信息:

启动redis服务器:

redis-server

使用redis客户端:

> redis-cli
redis> set key value
OK
redis> get key
"value"

从样本中,我有一个问题:

redis实例只能用于1个项目吗?你可以看到,没有“数据库”或“集合”或类似的东西。如果两个不同的项目使用相同的redis,则可能会将相同的密钥更改为无效值。

那么,我是否需要为不同的Rails项目创建具有不同端口的不同实例?

2 个答案:

答案 0 :(得分:9)

请记住,redis也有数据库(如果我没记错的话,其中有16个) - 它们只是没有命名,它们是数字。例如,如果您使用redis-rb进行连接,则会获得如下代码段:

$redis = Redis.new(:host => 'localhost', :port => 6379, :db => 5)

这将连接到数据库5.我使用它来运行测试,因此我的测试不会干扰我的开发数据库。

答案 1 :(得分:1)

如果在两个或多个应用程序之间共享一个Redis实例(或集群),那么您应该命名为密钥,以便根据您观察到的原因在这些应用程序之间合理地对它们进行分区。看一下redis-namespace gem,它为这样做提供了一个很好的Ruby接口。