yyz notes yyz notes
首页
  • RBAC权限设计
  • 架构图标设计
  • 账号体系
  • python基础
  • python高级
  • python模块
  • python设计模式
  • python数据结构与算法
  • django
  • django-DRF
  • flask
  • 直接设计开源pip包
  • 直接设计开源项目
  • python示例题/脚本
  • python面试题
  • golang基础
  • golang高级
  • golang常用组件
  • gin框架
  • es6
  • javascript
  • react
  • vue
  • TypeScript
  • mysql
  • redis
  • minio
  • elasticsearch
  • mongodb
  • 消息队列
  • 自动化测试
  • 操作系统

    • linux
    • windows
  • nginx
  • docker
  • k8s
  • git
  • ldap
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

益章

可乐鸡翅
首页
  • RBAC权限设计
  • 架构图标设计
  • 账号体系
  • python基础
  • python高级
  • python模块
  • python设计模式
  • python数据结构与算法
  • django
  • django-DRF
  • flask
  • 直接设计开源pip包
  • 直接设计开源项目
  • python示例题/脚本
  • python面试题
  • golang基础
  • golang高级
  • golang常用组件
  • gin框架
  • es6
  • javascript
  • react
  • vue
  • TypeScript
  • mysql
  • redis
  • minio
  • elasticsearch
  • mongodb
  • 消息队列
  • 自动化测试
  • 操作系统

    • linux
    • windows
  • nginx
  • docker
  • k8s
  • git
  • ldap
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL

  • Redis

    • Redis安装
    • redis数据类型
    • python操作Redis
    • 五种数据类型基本操作
    • redis其他常用操作
    • redis发布订阅
      • redis数据持久化
      • redis集群
      • 雪崩穿透击穿
      • redis锁代码
      • redis缓存代码
      • 部署redis主从
      • redis的cluster配置
      • redis哨兵模式
    • Elasticsearch

    • MongoDB

    • 消息队列

    • 数据存储
    • Redis
    YiZhang-You
    2023-05-24
    目录

    redis发布订阅

    # redis发布订阅

    https://www.cnblogs.com/pyyu/p/10013703.html (opens new window)

    发布publish,订阅subscribe

    Redis 通过 PUBLISH 、 SUBSCRIBE 等命令实现了订阅与发布模式。

    # 发布订阅的命令

    PUBLISH channel msg
        # 将信息 message 发送到指定的频道 channel
    publish qq01 abc	# 向频道qq01发送abc,频道有几个订阅就会返回对应的数量,没有就返回0
    
    SUBSCRIBE channel [channel ...]
        # 订阅频道,可以同时订阅多个频道
    subscribe qq01 qq02  # 同时订阅qq01和qq02频道
    
    UNSUBSCRIBE [channel ...]
        # 取消订阅指定的频道, 如果不指定频道,则会取消订阅所有频道
    unsubscribe qq01  # 取消订阅qq01这个频道
    
    PSUBSCRIBE pattern [pattern ...]
        # 订阅一个或多个符合给定模式的频道,每个模式以 * 作为匹配符,比如 it* 匹配所    有以 it 开头的频道( it.news 、 it.blog 、 it.tweets 等等), news.* 匹配所有    以 news. 开头的频道( news.it 、 news.global.today 等等),诸如此类
    psubscribe pattern*		# 使用通配符订阅一个或者多个频道
    
    PUNSUBSCRIBE [pattern [pattern ...]]
        # 退订指定的规则, 如果没有参数则会退订所有规则
    punsubscribe qq01  # 退订指定的规则
    
    PUBSUB subcommand [argument [argument ...]]
        #查看订阅与发布系统状态
    PUBSUB CHANNELS	# 订阅的使用频道
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23

    注意:使用发布订阅模式实现的消息队列,当有客户端订阅channel后只能收到后续发布到该频道的消息,之前发送的不会缓存,必须Provider和Consumer同时在线。

    # 发布订阅实验一

    一个人有二个qq群(qq01,qq02),

    1、官方向不同qq群发送不同的消息,qq01:aaaa qq02:bbbb

    2、官方群发一个:都是SB

    qq群:qq01 qq02

    127.0.0.1:6379> subscribe qq01 qq02		# 订阅二个qq群
    Reading messages... (press Ctrl-C to quit)
    1) "subscribe"
    2) "qq01"
    3) (integer) 1
    1) "subscribe"
    2) "qq02"
    3) (integer) 2
    
    1
    2
    3
    4
    5
    6
    7
    8
    # 1、给qq01群发布消息
    127.0.0.1:6379> publish qq01 aaaa
    (integer) 1
    # 接收
    1) "message"
    2) "qq01"
    3) "aaaa"
    
    # 2、给qq02群发布消息
    127.0.0.1:6379> publish qq02 bbbb
    (integer) 1
    # 接收
    1) "message"
    2) "qq02"
    3) "bbbb"
    
    # 3、官方群发 qq01,qq02
    # !publish只能一次一次的发,不能使用*号,单个PSUBSCRIBE wang*订阅多个可以
    publish qq01 sb
    publish qq02 sb
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    编辑 (opens new window)
    redis其他常用操作
    redis数据持久化

    ← redis其他常用操作 redis数据持久化→

    最近更新
    01
    配置yun源
    05-24
    02
    linux-配置python虚拟环境
    05-24
    03
    linux文件目录管理
    05-24
    更多文章>
    Theme by Vdoing | Copyright © 2023-2023 yizhang | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式