3

6コア、12スレッド、32GBのRAMを備えた専用サーバーでredisを実行します。プライマリデータストアとしてredisを使用しています。このアプリケーションには多数のハッシュ、セット、リストがありますが、それらはすべて同じアプリを構成します。すべてのスレッドを利用するために、異なるポートでredisの複数のインスタンスを開始し、それぞれにいくつかのredis構造を割り当てることはできますか?これには問題がありますか?クライアントコードでは、アプリデータの読み取り/書き込みを行うために、異なるポートで複数の接続を確立する必要があると思います。

ありがとう

4

1 に答える 1

2

Redis はシングルスレッドであるため、複数のコアまたは複数の CPU の利点を活用するには、複数のインスタンスを開始する必要があります。異なるポートを使用する必要があります。競合を避けるために、構成ファイルの他のパラメーターを変更する必要がある場合もあります。

  • pidファイル
  • ポート
  • unixsocket
  • ログファイル
  • dbfilename (または代わりに dir)

クライアント コードでは、Redis インスタンスごとに少なくとも 1 つの接続が必要です。

主な問題は、いくつかのキーが異なるインスタンスに追加されると、すべてのキーが同じインスタンス上にあることを最初に確認せずに、複数のキーを含むコマンドを実行できなくなることです (たとえば、異なる Redis インスタンスに保存されているセットの交差を計算することはできなくなります) 、少なくとも SINTER コマンドではありません)。

于 2012-09-26T16:34:13.550 に答える