【问题标题】:How to publish a message to a Redis Channel (StackExchange.Redis)如何将消息发布到 Redis 通道 (StackExchange.Redis)
【发布时间】:2021-06-29 23:55:52
【问题描述】:

我在 StackExchange.Redis 文档中阅读了一个关于订阅和发布的示例,但我不明白。

为什么这个例子没有提到发布?

var channel = multiplexer.GetSubscriber().Subscribe("messages");
channel.OnMessage(message =>
{
    Console.WriteLine((string)message.Message);
});

如何在 Dotnet Core 项目中实现订阅和发布?

什么是RedisChannel,谁能解释一下?

我喜欢这样:

RedisChannel channelWithLiteral = new RedisChannel("messages", RedisChannel.PatternMode.Literal);

RedisChannel channelWithLiteral = new RedisChannel("messages", RedisChannel.PatternMode.Literal);

var sub = connectionPoolManager.GetConnection().GetSubscriber();
sub.PublishAsync(channelWithLiteral , Serializer.Serialize(message));

Sub 和 Pub 项目。这是正确的吗?

【问题讨论】:

    标签: c# .net redis stackexchange.redis


    【解决方案1】:

    将 Redis 包添加到您的项目后(通过StackExchange.Redis NuGet 包),您可以连接到您的 Redis 服务器(在本例中为本地):

    using StackExchange.Redis;
    
    ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("localhost");
    

    接下来,您应该使用ISubscriber.Subscribe 订阅频道:

    var subscriber = connection.GetSubscriber();
    

    可以通过以下方式向任何频道发布消息:

    subscriber.Publish("channle-name", "This is a message");
    

    最后,订阅同一个频道(可能来自另一个客户端)以接收通过您想要的频道发送的消息:

    subscriber.Subscribe("channle-name", (channel, message) => {
        Console.WriteLine((string)message);
    });
    

    【讨论】:

      猜你喜欢
      • 2016-06-26
      • 2020-07-05
      • 1970-01-01
      • 2020-12-13
      • 2018-05-30
      • 1970-01-01
      • 2018-08-22
      • 2014-11-11
      • 2018-10-28
      相关资源
      最近更新 更多