4

Redis (1 マスター、1 スレーブ) のマスター/スレーブ デプロイと、Publish-Subscribe を管理するクライアント (webapp) があると仮定します。

  • メッセージをスレーブにパブリッシュできますか? また、メッセージはマスターに「表示」されますか?
  • それとも、パブリッシュ コマンドにはマスターを使用し、サブスクライブ コマンドにはスレーブのみを使用する必要がありますか?

私は周りを見回してきましたが、答えを見つけることができませんでした。誰でも知っていますか?

4

2 に答える 2

0

編集: @jameshfisher が指摘したように、以下のリンクはRedis Cluster. @lionello からのコメントは正しい答えのようです。

スレーブへのパブリッシュは、マスターには伝達されません。その逆のみです。

答えはクラスター仕様のドキュメントにあります:

パブリッシュ/サブスクライブ

Redis クラスターでは、クライアントはすべてのノードにサブスクライブでき、他のすべてのノードにパブリッシュすることもできます。クラスターは、パブリッシュされたメッセージが必要に応じて転送されるようにします。現在の実装では、パブリッシュされた各メッセージを他のすべてのノードにブロードキャストするだけですが、ある時点でこれはブルーム フィルターまたは他のアルゴリズムを使用して最適化される予定です。

于 2016-08-22T12:39:54.827 に答える
-1

Redis に保存する一般的なデータについては、マスターにのみ書き込む必要があります。

http://redis.io/topics/replicationから:

...スレーブとマスターが再同期する場合、またはスレーブが再起動される場合、[スレーブへの]書き込みは破棄されます...

実際、v2.6 からはslave-read-only、スレーブにデータを書き込むミスを防止するモードにスレーブを配置できます。

ドキュメントには、スレーブにデータを書き込むための潜在的なユースケースについて言及されています。

...多くの場合、スレーブに保存できる重要でない一時的なデータがあります。たとえば、クライアントは、スレーブ インスタンス内のマスターの到達可能性に関する情報を取得して、フェイルオーバー戦略を調整する場合があります。

于 2013-03-06T21:21:31.287 に答える