前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis总结之发布订阅

Redis总结之发布订阅

作者头像
沁溪源
发布2020-09-03 14:33:57
4560
发布2020-09-03 14:33:57
举报
文章被收录于专栏:沁溪源沁溪源

绪论

  • 理论知识 先介绍一下发布与订阅的基础知识: Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 发布者不是直接将消息发送给特定的接收者(订阅者),而是将发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。 订阅者支持订阅一个或多个频道,只需接收感兴趣的消息,不需要知道是由哪些发布者发布的。 发布者和订阅者相对于频道channel而言,均可以理解为客户端。 客户端发到频道的消息,将会被推送到所有订阅此频道的客户端。 客户端不需要主动去获取消息,只需要订阅频道,这个频道的内容就会被推送过来。 Redis 客户端可以订阅任意数量的频道。
  • 发布订阅命令

命令

说明

参数

返回

PSUBSCRIBE pattern [pattern1 …]

订阅一个或多个符合给定模式的频道,每个模式以*作为匹配符

pattern(给定的模式)

接受到的信息

PUNSUBSCRIBE pattern [pattern1 …]

用于退订所有给定模式的频道

pattern(给定的模式)

这个命令在不同的客户端中有不同的表现。

SUBSCRIBE channel [channel1 …]

用于订阅给定的一个或多个频道的信息

channel(给定的频道名)

接收到的信息

UNSUBSCRIBE channel [channel1 …]

用于退订给定的一个或多个频道的信息

channel(给定的频道名)

这个命令在不同的客户端中有不同的表现

PUBLISH channel message

用于将信息发送到指定的频道

channel(频道名称),message(将要发送的信息)

接收到此消息的订阅者数量

实践

这一部分将演示小编实际操作的发布订阅模式。 1.先开启订阅者客户端

代码语言:javascript
复制
小编这里选择订阅redisChannelOne\redisChannelTwo两个频道
127.0.0.1:6379> SUBSCRIBE redisChannelOne redisChannelTwo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChannelOne"
3) (integer) 1
1) "subscribe"
2) "redisChannelTwo"
3) (integer) 2

2.开启发布者客户端

代码语言:javascript
复制
发布者向redisChannelOne频道推送消息
127.0.0.1:6379> PUBLISH redisChannelOne "from channelOne message"
(integer) 1
127.0.0.1:6379> 

订阅者接受到消息如图:

在这里插入图片描述
在这里插入图片描述

3.发布者继续往频道redisChannelTwo推送消息

代码语言:javascript
复制
127.0.0.1:6379> PUBLISH redisChannelOne "from channelOne message"
(integer) 1
往频道redisChannelTwo推送消息
127.0.0.1:6379> PUBLISH redisChannelTwo "redisChannelTwo send message"
(integer) 1

订阅者端消息内容如下:

在这里插入图片描述
在这里插入图片描述

缺点

实践环节,大家注意到小编是先开启的订阅者客户端,有兴趣的伙伴可以实践一下如果先开启发布者客户端发布消息,订阅者是否能够收到消息,因此引出小编下面的内容: 即使redis实现了发布订阅(publish/subscribe)的功能,实际工作开发中不推荐使用。 最简单的例子就是上面所说的场景,如果订阅者客户端重启或者断线,那么它重启期间的消息则无法订阅到,导致接受消息失败。

参考资料:Redis发布与订阅

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 绪论
  • 实践
  • 缺点
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档