Redis发布订阅

发布订阅模式中发布消息的为publisher即发布者,接收消息的为subscriber即订阅者。在Redis中,所有的消息通过channel即频道进行发布,一个发布者可以向多个channel发布消息,一个订阅者也可以订阅多个channel。Redis不对消息进行持久化,如果消息发布时订阅者还没有进行订阅,则不会再收到此消息。

发布订阅命令

命令 格式 说明
PUBLISH PUBLISH channel message 发布message到指定的channel
SUBSCRIBE SUBSCRIBE channel [channel ...] 订阅1个或多个指定的channel
UNSUBSCRIBE UNSUBSCRIBE [channel [channel ...]] 取消订阅1个或多个指定的channel,如果不指定channel退订所有通过SUBSCRIBE订阅的channel
PSUBSCRIBE PSUBSCRIBE pattern [pattern ...] 根据匹配模式订阅channel
PUNSUBSCRIBE PUNSUBSCRIBE [pattern [pattern ...]] 根据匹配模式取消订阅channel,如果不指定匹配模式退订所有通过PSUBSCRIBE订阅的channel

subscribe不能重复订阅同一个channel,而psubscribe按照匹配模式订阅时有可能会多次订阅同一个channel。如果psubscribe多次订阅了同一个channel,发布者使用publish发布消息到此channel后,订阅者会多次收到此消息。

unsubscribe只能退订subscribe订阅的channel,punsubscribe只能退订psubscribe订阅的channel。

使用方法

1、订阅指定channel

192.168.1.100:6379> subscribe testchan
Reading messages... (press Ctrl-C to quit)
1) "subscribe" #订阅成功
2) "testchan" #订阅的channel名称
3) (integer) 1 #已订阅的channel个数 1) "message" #收到消息
2) "testchan" #消息来源channel
3) "hello" #消息内容 192.168.1.100:6379> publish testchan hello
(integer) 1 #收到消息的订阅者的数量

  

2、订阅指定匹配模式的channel

192.168.1.100:6379> psubscribe test*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe" #订阅成功
2) "test*" #订阅的channel匹配模式
3) (integer) 1 #已订阅的channel匹配模式个数 1) "pmessage" #收到消息
2) "test*" #匹配的订阅模式
3) "testchan" #消息来源channel
4) "hello" #消息内容 192.168.1.100:6379> publish testchan hello
(integer) 1 #收到消息的订阅者的数量

  

原文地址:http://caiguoqing.org/post/110

Redis发布订阅使用方法的更多相关文章

  1. RedisRepository封装—Redis发布订阅以及StackExchange.Redis中的使用

    本文版权归博客园和作者本人吴双共同所有,转载请注明本Redis系列分享地址.http://www.cnblogs.com/tdws/tag/NoSql/ Redis Pub/Sub模式 基本介绍 Re ...

  2. MariaDB主从复制,redis发布订阅,持久化,以及主从同步

      一. MariaDB主从复制 mysql基本操作 1 连接数据库 mysql -u root -p -h 127.0.0.1 mysql -u root -p -h 192.168.12.60 2 ...

  3. 利用Redis发布订阅完成tomcat集群下的消息通知

    以下为个人想法,如果有说的不对的地方请各位大佬见谅! 这是博主的第一篇博客,可能排版以及一些描述有不合理的地方还请勿喷,希望大家尽可能的多给我这样的新人一些鼓励让我能在写博客的道路上走下去. 进入正题 ...

  4. 我在生产项目里是如何使用Redis发布订阅的?(二)Java版代码实现(含源码)

    上篇文章讲了在实际项目里的哪些业务场景用到Redis发布订阅,这篇文章就讲一下,在Java中如何实现的. 图解代码结构 发布订阅的理论以及使用场景大家都已经有了大致了解了,但是怎么用代码实现发布订阅呢 ...

  5. 我在生产项目里是如何使用Redis发布订阅的?(一)使用场景

    转载请注明出处! 导语 Redis是我们很常用的一款nosql数据库产品,我们通常会用Redis来配合关系型数据库一起使用,弥补关系型数据库的不足. 其中,Redis的发布订阅功能也是它的一大亮点.虽 ...

  6. 使用EventBus + Redis发布订阅模式提升业务执行性能

    前言 最近一直奔波于面试,面了几家公司的研发.有让我受益颇多的面试经验,也有让我感觉浪费时间的面试经历~因为疫情原因,最近宅在家里也没事,就想着使用Redis配合事件总线去实现下具体的业务. 需求 一 ...

  7. Redis 发布订阅,小功能大用处,真没那么废材!

    今天小黑哥来跟大家介绍一下 Redis 发布/订阅功能. 也许有的小伙伴对这个功能比较陌生,不太清楚这个功能是干什么的,没关系小黑哥先来举个例子. 假设我们有这么一个业务场景,在网站下单支付以后,需要 ...

  8. SpringBoot Redis 发布订阅模式 Pub/Sub

    SpringBoot Redis 发布订阅模式 Pub/Sub 注意:redis的发布订阅模式不可以将消息进行持久化,订阅者发生网络断开.宕机等可能导致错过消息. Redis命令行下使用发布订阅 pu ...

  9. 本地使用 Docker Compose 与 Nestjs 快速构建基于 Dapr 的 Redis 发布/订阅分布式应用

    Dapr(分布式应用程序运行时)介绍 Dapr 是一个可移植的.事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的.无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言 ...

随机推荐

  1. 微服务分布式电商项目学习笔记(三)---- docker介绍安装以及使用docker安装软件(2020/7/10)

    其实在介绍docker的使用和安装之前应该还要介绍虚拟机的安装与配置,以及虚拟网络的配置,但是我使用的是vmware,而视频课使用的是vagrant,这一块我简看的,因此没有过多的介绍,至于vmwar ...

  2. 2020 Java开发者数据分析:中国已成为 Java 第一大国

    最近知名开发工具供应商Jetbrains在Java 25周年之际,对开发群体做了一次有意思的数据分析. 全文内容可见:https://blog.jetbrains.com/idea/2020/09/a ...

  3. Python-IndentationError: expected an indented block

    Error: IndentationError: expected an indented block Where? Python代码执行时候报这个错误 Why? Python代码具有严格缩进规范,默 ...

  4. windows 10 启动修复无法自动修复此计算机

    1. 失败后有两个选项卡:关机和高级选项,选择高级选项 2. 然后选择疑难解答 3. 选择高级选项 4. 选择回退到以前的版本 接下来需要登录,选择恢复到上一次正常启动的状态,注意选择保留数据,会有提 ...

  5. const pointers

    1 指针 p对应的地址是常量,但是里面存放的data不是常量 2 地址里存放的data是常量,但是地址不是常量 3 地址和指针都是常量

  6. 国产化之路-安装达梦DM8数据库

    专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...

  7. API可视化管理平台YApi

    Yapi是什么 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互 ...

  8. Java防止文件被篡改之文件校验和

    Java防止文件被篡改之文件校验和转载:请注明出处,谢谢! 1.为什么要防止文件被篡改?  答案是显然的,为了保证版权,系统安全性等.之前公司开发一个系统,技术核心是一个科学院院士的研究成果,作为一款 ...

  9. 发布TrajStat 1.4.4

    发布TrajStat 1.4.4 (MeteoInfo Java版插件),在PSCF和CWT源区分析中增加了依据格点中的气团轨迹条数为权重进行结果处理的功能.之前的仅有按照轨迹节点数目进行权重处理的功 ...

  10. 利用github创建个人网站

    先建个仓库,仓库名为: 用户名.github.io 进入仓库,删除README.md文件 新建个文件,文件名为: index.html,内容根据自己要求编写 打开网站,地址:https://用户名.g ...