Redis中的消息中间件怎么用

这篇文章给大家分享的是有关Redis中的消息中间件怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

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

Redis中的消息中间件怎么用

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


命令

  • 发布消息

publish channel message
Redis中的消息中间件怎么用



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


  • 订阅消息

subscribe channel [channel ...]
Redis中的消息中间件怎么用
Redis中的消息中间件怎么用
Redis中的消息中间件怎么用



subscribe命令在执行成功后,命令行会阻塞,随时等待着新的消息被发送。如果此时我们在向该频道中发送消息,则该订阅会立即返回我们发送的消息。


因为该频道已经有一个订阅者了,所以上图中的当我们执行publish命令时返回的结果为1。


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

  • 客户端在执行订阅命令后会进入订阅状态,只允许输入subscribe、psubscribe、unsubscribe、punsubscribe这四个命令。

  • 新开启的订阅客户端是无法接受到之前频道中消息的,因为Redis不会对发布的消息进行持久化。


  • 取消订阅

unsubscribe [channel [channel ...]]
Redis中的消息中间件怎么用

  • 按照模式订阅和取消订阅

psubscribe pattern [pattern ...]
punsubscribe [pattern [pattern ...]]
Redis中的消息中间件怎么用

查询订阅

  • 查看活跃的频道

pubsub channels
Redis中的消息中间件怎么用



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


  • 查看频道订阅数

pubsub numsub
Redis中的消息中间件怎么用

  • 查看模式订阅数

pubsub numpat
Redis中的消息中间件怎么用

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

感谢各位的阅读!关于“Redis中的消息中间件怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!