首页 存档 技术 查看内容

Redis的发布订阅及.NET客户端实现 序言 Redis中的发布/订阅功能

2018-3-30 13:00 |来自: 互联网 223 0

摘要: (点击上方蓝字,可快速关注我们) 来源:张龙豪 cnblogs.com/knowledgesea/p/6552811.html 序言 发布订阅在设计模式中也可以说是观察者模式,针对这个模式是处理对象间一对多的依赖关系的,当一个对象发生变化, ...

(点击上方蓝字,可快速关注我们)


来源:张龙豪

cnblogs.com/knowledgesea/p/6552811.html


序言


发布订阅在设计模式中也可以说是观察者模式,针对这个模式是处理对象间一对多的依赖关系的,当一个对象发生变化,其它依赖他的对象都要得到通知并更新。


然而它也有自己的缺点,就是当主题发生一系列的变化时,观察者都要做批量的更新,如果这样的更新成本很高,那么解决方法就是根据种类需求通知,而不能盲目的通知所有的观察者。


那针对这个缺点,一般的情况下,你没有需求谁订阅一个跟自己无关的消息推送呢?这也正好说明推送的消息需要整理而不能一窝蜂的什么消息都往一个通道里面抛,要分而治之,合理的设计发布通道的用途,也合理的订阅通道。

那么如此一来,升级到系统项目级别,他别给我们又带来啦,莫大的好处,便是:剥离系统耦合,减少单线功能的依赖关系,又正迎合啦高内聚,松耦合的系统架构设计。


扯拉这么多,只当废话啦,因为我这一篇的序言里面也不知道写什么段子啦,就这样吧。


Redis中的发布/订阅功能


这一节参考官方文档:https://redis.io/topics/pubsub


首先我准备啦1个redis服务,3个客户端,如下图所示:



然后打开官方文档,首先可以看到以下6个命令,对,就只有这6个命令,只要你能掌握理解,发散思维灵活运用。吐纳,吐纳,那么道于此,生一,生二、生三,生万物,根本不在话下!!C,C,C,WC, 小伙,以后拯救世界就看你啦。



下面我们使用这几个命令,做一个演示,便于你理解。


1、2个客户端订阅order.create通道消息,如下:



2、最后一个客户端发布往order.create通道发布消息。如下:



3、你会立马发现订阅此通道的另外2个客户端有信息输出出来,如下:



简单不,一个发布订阅的基础功能以及完事啦。


那如果你对其他一些发布订阅管理系统比较了解的话,你立马会想到一个功能,类似rabbitmq中的topic类型的匹配功能。那redis中有吗,就这6个命令,答案是有的。使用的命令为psubscribe。


127.0.0.1:6379

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部