Redis发布与订阅

  • binGe博客
  • 工具使用
  • 2022/2/14 16:31:00
  • 人已阅读
简介提到消息队列,最熟悉无疑是 rabbitmq,它基本是业界标准的解决方案。本文详细介绍 redis 多种实现轻订阅方法,作者认为非常有趣并加以总结,希望对有需要的朋友学习 redis 功能有一定的带入作用。

方法一:SUBSCRIBE + PUBLISH

//程序1:使用代码实现订阅端 var sub = RedisHelper.Subscribe(("chan1", msg => Console.WriteLine(msg.Body)));

//sub.Disponse(); //停止订阅

//程序2:使用代码实现发布端 RedisHelper.Publish("chan1", "111");

优势:支持多端订阅、简单、性能高;
缺点:数据会丢失;

 

方法二:BLPOP + LPUSH(争抢)

//程序1:使用代码实现订阅端

while (running) { try { var msg = RedisHelper.BLPop(5, "list1");

if (string.IsNullOrEmpty(msg) == false) { Console.WriteLine(msg); } }

catch (Exception ex) { Console.WriteLine(ex.Message); } }

//程序2:使用代码实现发布端

RedisHelper.LPush("list1", "111");


优势:数据不会丢失、简单、性能高;
缺点:不支持多端(存在资源争抢);
总结:为了解决方法一的痛点,我们实现了本方法,并且很漂亮的制造了一个新问题(不支持多端订阅)。

转载:https://www.cnblogs.com/kellynic/p/9952386.html


文章评论

评论
  • 消灭零回复
Top