当前位置: 首页 > news >正文

redis必杀命令:发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

Redis 客户端可以订阅任意数量的频道。

下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:
这里写图片描述

当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
这里写图片描述

例如:
以下实例演示了发布订阅是如何工作的。在我们实例中我们创建了订阅频道名为 redisChat:

redis 127.0.0.1:6379> SUBSCRIBE redisChat

Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1

现在,我们先重新开启个 redis 客户端,然后在同一个频道 redisChat 发布两次消息,订阅者就能接收到消息。

redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"

(integer) 1

redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by w3cschool.cc"

(integer) 1

# 订阅者的客户端会显示如下消息
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by w3cschool.cc"

Redis 发布订阅命令

序号  命令及描述
1   PSUBSCRIBE pattern [pattern ...] 订阅一个或多个符合给定模式的频道。
2   PUBSUB subcommand [argument [argument ...]] 查看订阅与发布系统状态。
3   PUBLISH channel message 将信息发送到指定的频道。
4   PUNSUBSCRIBE [pattern [pattern ...]] 退订所有给定模式的频道。
5   SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道的信息。
6   UNSUBSCRIBE [channel [channel ...]] 指退订给定的频道。

一、Redis Psubscribe 命令 - 订阅一个或多个符合给定模式的频道。

每个模式以 * 作为匹配符,比如 it* 匹配所有以 it 开头的频道( it.news 、 it.blog 、 it.tweets 等等)。 news.* 匹配所有以 news. 开头的频道( news.it 、 news.global.today 等等),诸如此类。

语法
redis Psubscribe 命令基本语法如下:

redis 127.0.0.1:6379> PSUBSCRIBE pattern [pattern ...]

可用版本:>=2.0.0

返回值
接收到的信息。

例如

127.0.0.1:6379> PSUBSCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "redisChat"
3) (integer) 1

二、Redis Pubsub 命令用于查看订阅与发布系统状态,它由数个不同格式的子命令组成
语法
redis Pubsub 命令基本语法如下:

redis 127.0.0.1:6379> PUBSUB <subcommand> [argument [argument ...]]

可用版本:>= 2.8.0

返回值

由活跃频道组成的列表。

例如:

127.0.0.1:6379> PUBSUB CHANNELS
1) "redisChat"
127.0.0.1:6379> 

其余几个命令比较简单,不一一列举。

相关文章:

  • apache的三种工作模式
  • 移动动态化方案在蜂鸟的架构演进(含React Native与Weex对比)
  • 移动端高清方案
  • JavaScript标准库之 - Math
  • TOML简介 (转) TOML的由来
  • Linux下统计代码行数
  • Storm并发度详解(转载)
  • ES2017 中的 Async 和 Await
  • WIN32_LEAN_AND_MEAN 含义以及用法
  • 进程池与列表循环多参传递
  • maven常见问题解决方法
  • Linux中文件MD5校验
  • IAAS,SAAS,PAAS, CaaS的区别
  • 对比 javascript url编码
  • Android -- Adapter
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 「面试题」如何实现一个圣杯布局?
  • 【347天】每日项目总结系列085(2018.01.18)
  • 4个实用的微服务测试策略
  • android 一些 utils
  • Java 23种设计模式 之单例模式 7种实现方式
  • leetcode386. Lexicographical Numbers
  • Mac转Windows的拯救指南
  • tweak 支持第三方库
  • vue 个人积累(使用工具,组件)
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 机器学习中为什么要做归一化normalization
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 如何进阶一名有竞争力的程序员?
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 你对linux中grep命令知道多少?
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #控制台大学课堂点名问题_课堂随机点名
  • $ git push -u origin master 推送到远程库出错
  • ${ }的特别功能
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (6)添加vue-cookie
  • (C#)一个最简单的链表类
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (MATLAB)第五章-矩阵运算
  • (编译到47%失败)to be deleted
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (六)软件测试分工
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (一)VirtualBox安装增强功能
  • (原)Matlab的svmtrain和svmclassify
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转) 深度模型优化性能 调参
  • (转)VC++中ondraw在什么时候调用的
  • (转)视频码率,帧率和分辨率的联系与区别
  • .Net Core webapi RestFul 统一接口数据返回格式