Redis-发布订阅
一.Redis的发布订阅机制
Redis提供了基于“发布订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道(channel)发布消息,订阅该频道的每个客户都可以收到该消息
二.命令
2.1 发布消息
命令; publish channel message
publish channel1 message2
2.2 订阅消息
Redis客户端可以订阅多个频道的消息
命令:subscribe channel[channel…]
10.3.34.101:6378> subscribe channelchanndl1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "channel"
3) (integer) 1
1) "subscribe"
2) "channdl1"
3) (integer) 2
1) "message"
2) "channdl1"
3) "message2"
2.3 取消订阅
命令:unsubscribe channel[channel…]
例如:
10.3.34.101:6378> unsubscribe channdl1
1) "unsubscribe"
2) "channdl1"
3) (integer) 0
2.4 按模式订阅
命令:psubscribe patten[pattern…]
例如:
10.3.34.101:6378> psubscribe cha*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "cha*"
3) (integer) 1
1) "pmessage"
2) "cha*"
3) "cha1"
4) "dd"
12.2.4 按模式取消订阅
命令:punsubscribe [patten[pattern…]]
2.5 查看订阅
2.5.1 查看活跃频道
活跃频道是指至少有一个订阅者的频道
命令:pubsub channels[pattern
例如:
10.3.34.101:6378> pubsub channels
1) "channel1"
2.5.2 查看频道订阅数
命令:pubsub numsub [channel…]
例如:
10.3.34.101:6378> pubsub numsub channel1
1) "channel1"
2) (integer) 2
2.5.3 查看模式订阅数
命令:pubsub numpat
例如:
客户端1:
10.3.34.101:6378> psubscribe pcha
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "pcha"
3) (integer) 1
客户端2:
10.3.34.101:6378> psubscribe pcha
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "pcha"
3) (integer) 1
客户端3:
10.3.34.101:6378> pubsub numpat
(integer) 2
三. 应用场景
聊天室,公告牌,服务之间利用消息解耦都可以使用发布订阅模式
知识小贴士:作者尽心运营的知识星球社群【请点击:简道源码&&架构分析 加入】(可添加运营同学WX:wx454876882)持续拉新中...,定期的jdk与核心框架源码解析,主流行业解决方案与架构设计资料查阅与下载尽在其中。帮助行业新人和有志于技术的专业人士体系化的学习源码与系统架构,获取业界知名技术峰会和厂商对外公布的主流业务场景的解决方案。同时这个星球也是一个社群,大家可以在社群中结识有识之士,共同探讨,答疑解惑。希望可以通过这个星球帮助大家每日进步一点点,一年持续365天,共勉
本星球 聚焦于Java源码分析,架构解析。低代码,可扩展和高可用架构设计。帮助你更好地学编程,欢迎想进步的同学!仅精品案例的资料整理即物超所值。让我们大家一起每日进步一点点~~,你可以:
1. 阅读星球专属的编程知识和优质文章
2.JAVA知识从点和面,深度挖掘。通过点,形成面。提升自身的技术广度和深度。
3. 加入星球专属交流群,帮你找到学习伙伴、获取每日优质文章推送等
4.业界优秀案例资料学习及下载
5. 和伙伴们一起学习打卡,增加动力,共同进步
6.工作、学习和方法论。如何提升软实力,比如写文章、画架构图、技术产品的营销、社区的运营等等。
7.招聘、面试和晋升。如何提前准备面试,有什么套路?如何提升硬实力,少走弯路?
8.提供简历优化服务哟。本人常年招聘,也就面试了1000+程序员和架构师~~
9.解答你的疑问。
10.每日进步一点点(最重要的一点): 让自己与众不同,每天学习1-2小时源码和架构知识,365天后再回首,1年前的自己可能是个SB吧。用通勤的时间让自己成长,让优秀变成一种习惯。