zoukankan      html  css  js  c++  java
  • Redis之PubSub

    【发布者订阅者模式】
      为了支持消息多播,Redis 不能再依赖于那5种基本数据类型了,它单独使用了一个模块来支持消息多播,这个模块的名字叫作 PubSub,也就是 PublisherSubscriber(发布者/订阅者模式)。
    【简单使用】
      subscribe可以根据主题进行订阅,多个消费端可以同时收到生产端发来的消息。但要注意,这个消费端只能做消费主题消息这件事,无法再进行其它操作。

    下图是订阅多个主题的操作:

    Redis也提供了Pattern的模式,可以订阅一类主题:

    【缺点】
      PubSub 的生产者传递过来一个消息,Redis 会直接找到相应的消费者传递过去。如果一个消费者都没有,那么消息会被直接丢弃。如果开始有三个消费者,一个消费者突然挂掉了,生产者会继续发送消息,另外两个消费者可以持续收到消息,但是当挂掉的消费者重新连上的时候,在断连期间生产者发送的消息,对于这个消费者来说就是彻底丢失了。
      如果 Redis 停机重启,PubSub 的消息是不会持久化的,毕竟Redis宕机就相当于一个消费者都没有,所有的消息会被直接丢弃。正是因为PubSub有这些缺点,在消息队列的领域它几乎找不到合适的应用场景,目前比较流行的消息队列有Kafka,RabbitMQ,RocketMQ等。
      2018年6月,Redis 5.0新增了Stream数据结构,这个功能给Redis带来了持久化消息队列,虽然也有存储量方面的局限性,但是相比于PubSub来说,还是更进了一步。

    【参考】

    《Redis深度历险 核心原理与应用实践》

  • 相关阅读:
    java环境配置为1.7jdk为什么cmd java -version查看版本是1.8
    bulid path 引 jar包 步骤
    eclipse 报错
    PLSQL使用技巧
    Oracle sqlplus不是内部或外部命令
    SVN 插件安装到Myeclipse10 上(经典)
    socket学习
    Eclipse 配置 插件svn 包步骤
    如何在Eclipse中使用SVN(经典)
    linux 下搭建LAMP
  • 原文地址:https://www.cnblogs.com/bruceChan0018/p/15717448.html
Copyright © 2011-2022 走看看