redis系列(八):Redis消息订阅发布与如何在SpringBoot中应用
订阅发布
发送者(pub)发生消息,订阅者(sub)接收消息。
消息订阅/发布原理
- 订阅信息由服务器进程维持的 redisServer.pubsub_channels 字典保存,字典的键为被订阅的频道,字典的值为订阅频道的所有客户端。
- 当有新消息发送到频道时,程序遍历频道(键)所对应的(值)所有客户端,然后将消息发送到所有订阅频道的客户端上。
- 订阅模式的信息由服务器进程维持的 redisServer.pubsub_patterns 链表保存,链表的每个节点都保存着一个 pubsubPattern 结构,结构中保存着被订阅的模式,以及订阅该模式的客户端。程序通过遍历链表来查找某个频道是否和某个模式匹配。
- 当有新消息发送到频道时,除了订阅频道的客户端会收到消息之外,所有订阅了匹配频道的模式的客户端,也同样会收到消息。
- 退订频道和退订模式分别是订阅频道和订阅模式的反操作。
redis自带的客户端测试订阅发布
订阅频道(subscribe)
执行命令:subscribe c1 c2 c3
订阅三个频道。
发生消息
执行命令:publish c1 hello
给c1频道发生hello消息
收到后的订阅端:
按照通配符订阅
通配符命令:psubscribe new*
spring boot+redis 监听过期的key事件
监听key过期事件来处理相应的业务(订单取消、计时业务等等。。),配置详见下面链接:
https://blog.csdn.net/qq_31214779/article/details/107122737