多个Redis实例

问题描述 投票:0回答:1

大多数人似乎建议在不同的端口(6379 和 6380)上运行单独的 Redis 实例。为什么比创建第二个数据库更普遍推荐这样做?我还没有完全读完文档,但大多数示例在连接时并没有真正提到“选择 Redis 数据库”。来自 Ruby 客户端的示例,nrk/predis 的自述文件:

$redis = new Predis\Client(array(
    'scheme' => 'tcp',
    'host'   => '10.0.0.1',
    'port'   => 6379,
));

我们目前在办公室使用 Campfire 运行 Hubot,我正在为 GTalk 开发第二个适配器,因为每个 Hubot 实例只能使用一个适配器。因此,我正在考虑创建第二个数据库或 Redis 实例,以便隔离两个 hubot 之间的数据。但在进一步讨论之前,我想了解为什么要使用单独的实例而不是仅仅创建第二个数据库。

redis
1个回答
36
投票

两个主要原因:

  1. 使用多个数据库通常被认为是不好的,并且有一天会被弃用,并且它们会带来一些性能损失,尽管很小。

  2. 主要原因是 Redis 是单线程的,如果您需要两个不同的数据源,另一个 Redis 实例将提高性能,因为它将利用您可能拥有的另一个 CPU,而一个实例将始终只利用一个。

  3. 不同的redis实例也可以有不同的持久化设置。例如,一个实例只能使用内存,其他实例可以使用文件作为存储 Redis持久化

还有其他优点,如拥有单独的身份验证密码、LRU 策略等 - 这只能在实例级别完成。

© www.soinside.com 2019 - 2024. All rights reserved.