1

我正在使用带有redis的Rails。

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

启动redis服务器:

redis-server

使用redis客户端:

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

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

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

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

4

2 回答 2

9

请记住,redis 也有数据库(如果我没记错的话,其中有 16 个)——它们只是没有命名,它们是数字。因此,例如,如果您使用redis-rb连接,您将得到这样的片段:

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

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

于 2010-07-12T04:39:02.037 回答
1

如果在两个或多个应用程序之间共享单个 Redis 实例(或集群),那么出于您观察到的原因,您可能应该命名您的键以在这些应用程序之间合理地对它们进行分区。看看redis-namespace gem,它提供了一个很好的 Ruby 接口来执行此操作。

于 2010-07-11T16:52:14.150 回答