sql >> データベース >  >> NoSQL >> Redis

Redis pubsubmaxサブスクライバーとパブリッシャー

    Redisはdictを使用します 、キーの場合と同じ構造体で、クライアントごととすべてのクライアントの両方のチャネルサブスクリプションを保存します(サブスクライブされたクライアントのリストを含むサブスクリプションごとのハッシュを保持します)。したがって、合計で最大2^32のチャネルサブスクリプションになります。

    リストを使用してクライアントごとのパターンサブスクリプションを保存するため、理論的には使用可能なノードメモリによってのみ制限されます。

    ただし、一般的に、無限のチャネルを持つことができます。メッセージが公開されるときのラベルとしてチャネルを考えてください。メッセージが保存されることはありません。メッセージが公開されると、Redisはそのチャネルにサブスクライブしているクライアントを探し、すべてのパターンサブスクリプションをテストします。チャネルは、メッセージが公開されている間だけ実際に存在します。

    パターンサブスクリプションがあるため、無制限の「論理」チャネルがあります。

    イベント通知だけで、2 ^32*データベース*主要なイベントタイプの可能な「論理」チャネルがあります。

    サブスクライバーとパブリッシャーの数に関しては、maxclientsによって制限されます 設定、デフォルトでは10,000。サブスクライバーとパブリッシャーに制限はありませんが、クライアント(接続)の最大制限が適用されます。

    @Romanで示されているように、バッファの制限がありますが、これは主にスループット(メッセージ処理)を指します。



    1. Spring Data Redis-UUID id-ConverterNotFoundException

    2. データベース自動化を開始する方法

    3. MongoでNOTINクエリを実行するにはどうすればよいですか?

    4. .find()マングースで何も見つからない場合は何かをします