ホームページ  >  記事  >  バックエンド開発  >  .net core で Redis を使用したパブリッシュおよびサブスクライブ方法の概要

.net core で Redis を使用したパブリッシュおよびサブスクライブ方法の概要

巴扎黑
巴扎黑オリジナル
2017-09-20 09:32:562791ブラウズ

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

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

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

Redis パブリッシュとサブスクライブ (pub/sub) は、メッセージ通信モデルです。送信者 (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 core で Redis を使用したパブリッシュおよびサブスクライブ方法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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