Redis提供了简单的发布订阅功能,虽然不能和专业的消息中间件比,但如果我们只是简单的想要使用发布订阅功能,那么Redis中的发布订阅更合适不过了,因为它和专业的消息中间比使用时相对比较简单。
在Redis中消息的发布者和订阅者不能直接进行通信,而是通过频道来实现的。消息的发布者将消息发送到指定频道中,而消息的订阅者订阅该频道后,则会接受到该频道中所有接收到的消息。

Redis为了实现发布订阅功能,提供了很多新的命令,下面我们详细介绍一下和发布订阅功能相关的命令。
命令
发布消息
publish channel message
复制

publish命令的返回值为该频道的订阅数,因为该频道没有订阅者,所以上图中的代码返回值为0。
订阅消息
subscribe channel [channel ...]
复制



subscribe命令在执行成功后,命令行会阻塞,随时等待着新的消息被发送。如果此时我们在向该频道中发送消息,则该订阅会立即返回我们发送的消息。
因为该频道已经有一个订阅者了,所以上图中的当我们执行publish命令时返回的结果为1。
下面我们了解一下订阅命令的注意事项。
客户端在执行订阅命令后会进入订阅状态,只允许输入subscribe、psubscribe、unsubscribe、punsubscribe这四个命令。
新开启的订阅客户端是无法接受到之前频道中消息的,因为Redis不会对发布的消息进行持久化。
取消订阅
unsubscribe [channel [channel ...]]
复制

按照模式订阅和取消订阅
psubscribe pattern [pattern ...]
punsubscribe [pattern [pattern ...]]复制

查询订阅
查看活跃的频道
pubsub channels
复制

上面说的活跃的频道指的是至少要有一个订阅者。
查看频道订阅数
pubsub numsub
复制

查看模式订阅数
pubsub numpat
复制

上述内容就是Redis中发布订阅的全部内容,它和专业的消息中间件比例如Kafka、RocketMQ等。它不支持消息的堆积及回溯,如果我们在使用发布订阅功能时,如果可以容忍上述中的缺点,那我们Redis中的发布订阅功能可以优先考虑。
文章转载自吉林乌拉,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
融合Redis缓存的PostgreSQL高可用架构
梧桐
55次阅读
2025-04-08 06:35:40
缓存监控治理在游戏业务的实践和探索
vivo互联网技术
43次阅读
2025-03-20 09:51:10
Redis 集群主备切换原因分析
wzf0072
37次阅读
2025-03-20 17:51:42
Redis Cluster集群模式:构建大规模高性能分布式存储系统
老王两点中
31次阅读
2025-03-17 09:00:28
Redis 高可用方案
天翼云开发者社区
30次阅读
2025-03-24 17:09:54
国产非关系型数据库 Eloqkv 初体验
JiekeXu
25次阅读
2025-04-10 23:51:35
高并发场景下的库存管理,理论与实战能否兼得?
京东云开发者
18次阅读
2025-03-24 16:54:56
Redis Sentinel模式:构建高可用Redis集群
老王两点中
16次阅读
2025-03-14 09:01:04
Redis数据库——8种内存淘汰机制
编程Cookbook
13次阅读
2025-03-14 10:22:17
Redis
鲁鲁
11次阅读
2025-04-07 20:14:35