ホームページ >バックエンド開発 >C#.Net チュートリアル >コアが .NET で Redis パブリッシュおよびサブスクライブを使用する方法の分析例

コアが .NET で Redis パブリッシュおよびサブスクライブを使用する方法の分析例

黄舟
黄舟オリジナル
2017-09-19 11:16:132087ブラウズ

この記事では、主に .net core が Redis を使用してパブリッシュおよびサブスクライブする方法を紹介します。編集者がそれを共有し、参考にさせていただきます。エディターをフォローして見てみましょう

Redis は非常に強力なインメモリ データベースであり、一般にキャッシュとして使用されますが、たとえば、有名な分散フレームワーク dubbo が使用できるだけではありません。 Redis サービス登録センターを作成します。次に、Redisを利用した.net coreのパブリッシュ/サブスクライブ機能を紹介します。

Redis パブリッシュとサブスクライブ

Redis パブリッシュとサブスクライブ (pub/sub) は、メッセージ通信モデルです。送信者 (パブ) がメッセージを送信し、サブスクライバー (サブ) がメッセージを受信します。
Redis クライアントは任意の数のチャネルをサブスクライブできます。

次の図は、チャネル channel1 と、このチャネルにサブスクライブする 3 つのクライアント (client2、client5、client1) との関係を示しています。

新しいメッセージが PUBLISH コマンドを通じてチャネル channel1 に送信されると、このメッセージは次のようになります。サブスクライブする 3 つのクライアントに送信されます:

Redis コマンドを使用します

まず、subscribe redismessage コマンドを通じて 2 つのクライアントを redismessage チャネルにサブスクライブします:

次に、クライアント側では、publish redismessage "message content" コマンドを使用してメッセージを公開します

.net core を使用して実装します

ここで選択した接続ドライバーは StackExchange.Redis であることに注意してください。 .Redis 接続ドライバーは段階的に商用化に向けて、バージョン 4.0 以降では制限があるため、無料で使いやすい StackExchange.Redis を選択し、nuget を使用してインストールします。

サブスクリプション クライアントを構築する


//创建连接
using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("127.0.0.1:6379"))
{
  ISubscriber sub = redis.GetSubscriber();

  //订阅名为 messages 的通道

  sub.Subscribe("messages", (channel, message) => {

    //输出收到的消息
    Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] {message}");
  });
  Console.WriteLine("已订阅 messages");
  Console.ReadKey();
}

公開クライアントを構築する


//创建连接
using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("127.0.0.1:6379"))
{
  ISubscriber sub = redis.GetSubscriber();

  Console.WriteLine("请输入任意字符,输入exit退出");

  string input;

  do
  {
    input = Console.ReadLine();
    sub.Publish("messages", input);
  } while (input != "exit");
}

1 つの公開クライアントと 2 つのサブスクリプション クライアントが以下で実行されます:

以上がコアが .NET で Redis パブリッシュおよびサブスクライブを使用する方法の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。