微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将消息发布到 Redis 通道 (StackExchange.Redis)

如何解决如何将消息发布到 Redis 通道 (StackExchange.Redis)

我读过一个关于在 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 项目。这是正确的吗?

解决方法

将 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);
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。