【问题标题】:Is a redis instance can only work for 1 project?redis 实例只能用于 1 个项目吗?
【发布时间】:2023-03-08 22:05:01
【问题描述】:

我正在使用带有 redis 的 Rails。

从Redis的介绍中,我找到了这样的资料:

启动 redis 服务器:

redis-server

使用 redis 客户端:

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

从示例中,我有一个问题:

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

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

【问题讨论】:

    标签: ruby-on-rails redis


    【解决方案1】:

    请记住,redis 也有数据库(如果我没记错的话,其中有 16 个)——它们只是没有命名,它们是数字。因此,例如,如果您使用 redis-rb 进行连接,您将获得如下所示的 sn-p:

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

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多