2017-08-17 5 views
2

シナリオ:アプリケーションの2つのインスタンスが同じredisインスタンスを共有しますが、異なるデータベースを使用します。アプリケーションは、サービス間でデータを交換するためにredis pub/sub関数を使用します。pub/sub用に2つのredisデータベースを完全に分離する方法はありますか?

問題:アプリケーションインスタンスAが(redisデータベース1に)何かを公開すると、アプリケーションインスタンスB(redisデータベース2で実行中)がメッセージを受信します。

期待:アプリケーションの両方のインスタンスが異なるデータベースを使用するため、私はredisのキーが別々に保持されているだけでなく、パブ/サブのサブスクライバも期待しています。

質問:データベースごとにpub/subを分けて保存するようにredisに伝えることはできますか?

答えて

2

いいえ - PubSubは、現在SELECT edデータベース(共有データベース/番号付きデータベース/キースペース)に関係なく、サーバーに接続されているすべてのクライアントで共有されます。異なるチャンネルなどを使用することはできますが、実際の分離は2つのRedisインスタンスを使用することによってのみ可能です。

注:共有/番号付きデータベースを使用することはお勧めしません。常にアプリケーション/サービス/ユースケースごとに専用のRedisインスタンスを使用してください。

関連する問題