Java--Redis-04-redis的消息发布及订阅

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis 提供了消息的发布与订阅功能,发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道,支持多个频道订阅。

Redis 提供了消息的发布与订阅功能,发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。

Redis 客户端可以订阅任意数量的频道,支持多个频道订阅。

一、简单的一次发布与订阅

1.创建订阅频道名为 xinghua:

127.0.0.1:6379>SUBSCRIBExinghuaReadingmessages... (pressCtrl-Ctoquit)
1) "subscribe"2) "xinghua"3) (integer) 1

2.另起一个redis-cli:

127.0.0.1:6379>PUBLISHxinghua123(integer) 1

可以看到在第一个redis-cli客户端显示出了信息:

127.0.0.1:6379>SUBSCRIBExinghuaReadingmessages... (pressCtrl-Ctoquit)
1) "subscribe"2) "xinghua"3) (integer) 11) "message"2) "xinghua"3) "123"

再来一次:

D:\redis>redis-cli127.0.0.1:6379>PUBLISHxinghua123(integer) 1127.0.0.1:6379>PUBLISHxinghua123456(integer) 1127.0.0.1:6379>

显示了:

image.png


二、试试同时订阅监听两个发布

127.0.0.1:6379>psubscribexinghuaxinghua1Readingmessages... (pressCtrl-Ctoquit)
1) "psubscribe"2) "xinghua"3) (integer) 11) "psubscribe"2) "xinghua1"3) (integer) 2
127.0.0.1:6379>PUBLISHxinghua123456(integer) 1
D:\redis>redis-cli127.0.0.1:6379>publishxinghua1444(integer) 1

ok,显示:

image.png


三、退订频道

127.0.0.1:6379>punsubscribexinghua1) "punsubscribe"2) "xinghua"3) (integer) 0127.0.0.1:6379>
127.0.0.1:6379>unsubscribexinghua1) "unsubscribe"2) "xinghua"3) (integer) 0


总结:

       psubscribe 订阅一或多个频道,然后publish发布到这个频道消息,就可以实时监听到该消息。



END

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
15天前
|
NoSQL Redis
【Redis】Redis的发布和订阅
【1月更文挑战第18天】【Redis】Redis的发布和订阅
|
6月前
|
消息中间件 NoSQL Kafka
【Redis 系列】redis 学习九,Redis 的发布和订阅是咋玩的
【Redis 系列】redis 学习九,Redis 的发布和订阅是咋玩的
|
15天前
|
消息中间件 NoSQL PHP
Laravel实现redis发布-订阅
Laravel实现redis发布-订阅
33 0
|
7月前
|
存储 NoSQL Redis
【Redis源码】发布与订阅(六)
【Redis源码】发布与订阅(六)
53 0
|
15天前
|
NoSQL 安全 Unix
Redis源码、面试指南(4)单机数据库、持久化、通知与订阅(中)
Redis源码、面试指南(4)单机数据库、持久化、通知与订阅
23 0
|
1天前
|
存储 缓存 NoSQL
Redis与数据库同步指南:订阅Binlog实现数据一致性
本文由开发者小米分享,探讨分布式系统中的一致性问题,尤其是数据库和Redis一致性。文章介绍了全量缓存策略的优势,如高效读取和稳定性,但也指出其一致性挑战。为解决此问题,提出了通过订阅数据库的Binlog实现数据同步的方法,详细解释了工作原理和步骤,并分析了优缺点。此外,还提到了异步校准方案作为补充,以进一步保证数据一致性。最后,提醒在实际线上环境中需注意日志记录、逐步优化和监控报警。
25 3
|
14天前
|
消息中间件 Java RocketMQ
MQ产品使用合集之在同一个 Java 进程内建立三个消费对象并设置三个消费者组订阅同一主题和标签的情况下,是否会发生其中一个消费者组无法接收到消息的现象
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
15天前
|
存储 NoSQL 调度
Redis源码、面试指南(4)单机数据库、持久化、通知与订阅(下)
Redis源码、面试指南(4)单机数据库、持久化、通知与订阅
18 0
|
15天前
|
存储 NoSQL API
Redis源码、面试指南(4)单机数据库、持久化、通知与订阅(上)
Redis源码、面试指南(4)单机数据库、持久化、通知与订阅
26 1
|
15天前
|
设计模式 消息中间件 Java
Java 设计模式:探索发布-订阅模式的原理与应用
【4月更文挑战第27天】发布-订阅模式是一种消息传递范式,被广泛用于构建松散耦合的系统。在 Java 中,这种模式允许多个对象监听和响应感兴趣的事件。
47 2