一、前言
首先在学习这部分的内容时,博主先说明一下这部分的内容不是Redis中的重要内容,因为redis的发布订阅功能其实就是实现的消息中间件的功能,而Redis中的Stream类型或者我们的RabbitMQ、Kafka等消息中间件才是我们现在市场流行的,为了知识的完整性,这里也介绍redis发布订阅的相关的指令和原理 。
二、Redis 发布/订阅
1、原理解释
Redis的发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接受消息。
如图所示:发布订阅模型需要:消息发送者、频道、订阅者三部分组成。
工作流程:①首先通过subscribe命令订阅某个频道,redis-server里维护了一个字典,字典里面的键就是一个个频道,而字典维护的值是一个链表,链表中保存了订阅这个频道的订阅者们(客户端);
②:通过publish命令向订阅者发布消息,Redis-server会使用使用给定的频道作为键,找到对应的客户端的链表,遍历整个链表,将消息发布给订阅者们。
2、常用指令
此图来自菜鸟教程
3、案例演示
使用publish指令和subscribe指令完成消息的订阅 与发送。
首先订阅一个名称为“redisDemo"的频道(订阅端)
再开一个客户端,用于向我们创建的“redisDemo"频道发送消息”hello,redis“(发送端)
此时我们观察订阅频道的客户端(订阅端),会出现我们发送的”hello,redis“消息
4、场景应用
实时消息系统、实时聊天、订阅关注系统等。
三、总结
关于这个Redis的发布订阅模型,我觉得大家了解原理即可,知道有这样一个东西,作为我们知识完整性的一部分。如果想提升这方面的技术还是要去学习现在市面上比较流行的消息中间键才行。大家加油,觉得这篇文章有所帮助,记得点赞支持哦!