.net core如何使用Redis发布订阅

 更新时间:2017年09月18日 14:54:18   作者:晓晨  
本篇文章主要介绍了.net core如何使用Redis发布订阅,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Redis是一个性能非常强劲的内存数据库,它一般是作为缓存来使用,但是他不仅仅可以用来作为缓存,比如著名的分布式框架dubbo就可以用Redis来做服务注册中心。接下来介绍一下.net core 使用Redis的发布/订阅功能。

Redis 发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的通道。

下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:

当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:

使用Redis命令

首先,通过subscribe redismessage命令使两个客户端订阅redismessage通道:

然后再打开一个Redis客户端,使用命令publish redismessage "消息内容"发布消息

使用.net core 实现

这里我选择的连接驱动为 StackExchange.Redis,这里需要注意的是 ServiceStack.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");
}

下面运行了一个发布客户端,两个订阅客户端:

Demo下载

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • ASP.NET笔记之 ListView 与 DropDownList的使用

    ASP.NET笔记之 ListView 与 DropDownList的使用

    本篇文章小编为大家介绍,ASP.NET笔记之 ListView 与 DropDownList的使用。需要的朋友参考下
    2013-04-04
  • asp.net core配合vue实现后端验证码逻辑

    asp.net core配合vue实现后端验证码逻辑

    网上的前端验证码逻辑总感觉不安全,验证码建议还是使用后端配合验证。本文主要介绍了asp.net core配合vue实现后端验证码逻辑,感兴趣的可以了解一下
    2021-06-06
  • 给Repeater控件里添加序号的5种才常见方法介绍

    给Repeater控件里添加序号的5种才常见方法介绍

    Repeater是我们经常用的一个显示数据集的数据控件那么我们该怎么为Repeater控件添加序号呢?下面编辑为大家介绍几种常用的为Repeater控件添加序号的方法
    2013-09-09
  • c# indexof 用法深入理解

    c# indexof 用法深入理解

    在开发过程中经常会使用到c# indexof 查找字串中指定字符或字串首次出现的位置,返首索引值,本文将详细介绍,需要的朋友可以参考下
    2012-11-11
  • Asp.Net各种超时问题总结

    Asp.Net各种超时问题总结

    在数据库或者请求操作时,如果选择的时间段过短或操作数据量过大,就会遇到"请求超时"的的问题,网络上提供很多解决方案,但普遍不完善,根据个人经验及参考网络解决方案,先将其汇总
    2013-02-02
  • 基于.NET程序默认启动线程数讲解

    基于.NET程序默认启动线程数讲解

    本篇文章小编为大家介绍,基于.NET程序默认启动线程数讲解。需要的朋友参考下
    2013-04-04
  • 在asp.NET 中使用SMTP发送邮件的实现代码

    在asp.NET 中使用SMTP发送邮件的实现代码

    本文简单介绍了SMTP协议(RFC2554)发送邮件的过程,并讨论了在 .NET 中使用SMTP发送邮件由简到繁的三种不同方案、各自可能遇到的问题及其解决办法
    2011-05-05
  • Asp.Net MVC学习总结之过滤器详解

    Asp.Net MVC学习总结之过滤器详解

    本篇文章主要介绍了Asp.Net MVC学习总结之过滤器详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • .net下log4net使用方法详解

    .net下log4net使用方法详解

    这篇文章主要为大家详细介绍了.net下log4net使用方法,以控制台应用程序为例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 1个文件如何轻松搞定Asp.net core 3.1动态页面转静态页面

    1个文件如何轻松搞定Asp.net core 3.1动态页面转静态页面

    这篇文章主要给大家介绍了关于如何通过1个文件轻松搞定Asp.net core 3.1动态页面转静态页面的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Asp.net core 3.1具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-05-05

最新评论