前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis中的消息中间件

Redis中的消息中间件

作者头像
吉林乌拉
发布2019-10-24 22:49:45
1.1K0
发布2019-10-24 22:49:45
举报
文章被收录于专栏:吉林乌拉吉林乌拉

Redis提供了简单的发布订阅功能,虽然不能和专业的消息中间件比,但如果我们只是简单的想要使用发布订阅功能,那么Redis中的发布订阅更合适不过了,因为它和专业的消息中间比使用时相对比较简单。

在Redis中消息的发布者和订阅者不能直接进行通信,而是通过频道来实现的。消息的发布者将消息发送到指定频道中,而消息的订阅者订阅该频道后,则会接受到该频道中所有接收到的消息。

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

命令

  • 发布消息
代码语言:javascript
复制
publish channel message

publish命令的返回值为该频道的订阅数,因为该频道没有订阅者,所以上图中的代码返回值为0。

  • 订阅消息
代码语言:javascript
复制
subscribe channel [channel ...]

subscribe命令在执行成功后,命令行会阻塞,随时等待着新的消息被发送。如果此时我们在向该频道中发送消息,则该订阅会立即返回我们发送的消息。 因为该频道已经有一个订阅者了,所以上图中的当我们执行publish命令时返回的结果为1。

下面我们了解一下订阅命令的注意事项。

  • 客户端在执行订阅命令后会进入订阅状态,只允许输入subscribe、psubscribe、unsubscribe、punsubscribe这四个命令。
  • 新开启的订阅客户端是无法接受到之前频道中消息的,因为Redis不会对发布的消息进行持久化。
  • 取消订阅
代码语言:javascript
复制
unsubscribe [channel [channel ...]]
  • 按照模式订阅和取消订阅
代码语言:javascript
复制
psubscribe pattern [pattern ...]
punsubscribe [pattern [pattern ...]]

查询订阅

  • 查看活跃的频道
代码语言:javascript
复制
pubsub channels

上面说的活跃的频道指的是至少要有一个订阅者。

  • 查看频道订阅数
代码语言:javascript
复制
pubsub numsub
  • 查看模式订阅数
代码语言:javascript
复制
pubsub numpat

上述内容就是Redis中发布订阅的全部内容,它和专业的消息中间件比例如Kafka、RocketMQ等。它不支持消息的堆积及回溯,如果我们在使用发布订阅功能时,如果可以容忍上述中的缺点,那我们Redis中的发布订阅功能可以优先考虑。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吉林乌拉 微信公众号,前往查看

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

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

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