16

ほとんどの人は、異なるポート(6379と6380)で別々のRedisインスタンスを実行することを推奨しているようです。2番目のデータベースを作成するよりも、これがより一般的に推奨されるのはなぜですか?私はまだドキュメントを完全には読んでいませんが、ほとんどの例では、接続時の「Redisデータベースの選択」については実際には言及されていません。Rubyクライアントの例、nrk / predisのREADME:

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

現在、私たちはCampfireを使用してオフィスでHubotを実行していますが、Hubotインスタンスごとに使用できるアダプターは1つだけなので、GTalk用に2つ目のアダプターを作成しています。そのため、2つのhubot間のデータが分離されるように、Redisの2番目のデータベースまたはインスタンスを作成することを検討しています。しかし、先に進む前に、2つ目のデータベースを作成するだけでなく、個別のインスタンスを使用する理由を理解したいと思いました。

4

1 に答える 1

34

2つの主な理由:

  1. 複数のデータベースを使用することは、一般的に悪いと考えられており、いつか非推奨になる予定です。また、かなりマイナーではありますが、パフォーマンスに多少のペナルティがあります。

  2. 主な理由は、redisがシングルスレッドであるためです。2つの異なるデータソースが必要な場合、別のredisインスタンスは、おそらく使用している別のCPUを使用するため、パフォーマンスが向上しますが、1つのインスタンスは常に1つだけを使用します。

  3. また、異なるredisインスタンスは、異なる永続性設定を持つことができます。たとえば、1つのインスタンスはメモリのみを使用でき、他のインスタンスはファイルをストレージとして使用できます Redis Persistence

次に、個別の認証パスワード、LRU戦略など、インスタンスレベルでのみ実行できる他の利点があります。

于 2012-05-17T22:10:19.490 に答える