Redis 发布订阅

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

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

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

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

实例演示

使用客户端1订阅一个频道;

127.0.0.1:6379> subscribe c1

Reading messages... (press Ctrl-C to quit)

1) "subscribe"

2) "c1"

3) (integer) 1

# 客户端二发送消息后

1) "message"

2) "c1"

3) "helloworld!!!"

# 客户端二发送第二次消息后

1) "message"

2) "c1"

3) "hello!redis!!"

使用客户端2往频道中推送一条消息;

127.0.0.1:6379> publish c1 "helloworld!!!"

(integer) 1

使用场景

实时消息系统;

在线聊天;

关注、订阅功能。

命令介绍

psubscribe

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

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

pubsub

Pubsub 命令用于查看订阅与发布系统状态,它由数个不同格式的子命令组成。

127.0.0.1:6379> pubsub channels

1) "c1"

127.0.0.1:6379> pubsub numsub c1 #查看订阅者个数

1) "c1"

2) (integer) 1

publish

Publish 命令用于将信息发送到指定的频道。

127.0.0.1:6379> publish c1 "helloworld!!!"

(integer) 1

punsubscribe

Punsubscribe 命令用于退订所有给定模式的频道。

redis 127.0.0.1:6379> PUNSUBSCRIBE mychannel

1) "punsubscribe"

2) "a"

3) (integer) 1

subscribe

Subscribe 命令用于订阅给定的一个或多个频道的信息。

127.0.0.1:6379> subscribe c1

Reading messages... (press Ctrl-C to quit)

1) "subscribe"

2) "c1"

3) (integer) 1

unsubscribe

Unsubscribe 命令用于退订给定的一个或多个频道的信息。

redis 127.0.0.1:6379> UNSUBSCRIBE mychannel

1) "unsubscribe"

2) "a"

3) (integer) 0

本文由 huzd 创作,采用 知识共享署名4.0 国际许可协议进行许可本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名最后编辑时间

为:

2021/02/10 22:38

redis java 发布订阅_【Redis学习系列】Redis发布订阅相关推荐

  1. Java并发包源码学习系列:同步组件CountDownLatch源码解析

    文章目录 CountDownLatch概述 使用案例与基本思路 类图与基本结构 void await() boolean await(long timeout, TimeUnit unit) void ...

  2. gin redis 链接不上_内存优化,Redis是如何实现的!

    点击上方"小罗技术笔记",关注公众号 第一时间送达实用干货 各位朋友新年开工好,今年由于特殊情况好多小伙伴今天在家开启远程办公模式(一直很向往),不过在这真想吐槽一下现有的远程办公 ...

  3. redis 内存不足 排查_Redis 系统学习之 redis 内存模型

    关注:架构师学习路线,每日更新互联网最新技术文章与你不断前行,实战资料,笔试面试 前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并 ...

  4. redis多服务器共享_【数据库】Redis(二)持久化及事务

    Redis的数据持久化 Redis是基于内存对数据操作的数据库,计算机重启后,内存中的数据就会丢失,所以redis提供了持久化的功能,可以将redis操作的内存中数据持久化到本地的硬盘中.在redis ...

  5. unet是残差网络吗_深度学习系列(三)卷积神经网络模型(ResNet、ResNeXt、DenseNet、DenceUnet)...

    深度学习系列(三)卷积神经网络模型(ResNet.ResNeXt.DenseNet.Dence Unet) 内容目录 1.ResNet2.ResNeXt3.DenseNet4.Dence Unet 1 ...

  6. 7发布年份_众多洋酒大牌相继发布新品 | 全球烈酒新品一周速览

    编 | Candy 编者按:因每款威士忌都具有较强的个性特征和独特的风格,所以只要一出新品,就会成为威士忌圈内的热议话题.为此,WBO烈酒商业观察推出"全球烈酒新品一周速览"的栏目 ...

  7. redis java 监听_从零手写实现redis(四)添加监听器

    前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(三)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? ...

  8. redis指定配置文件启动_深入学习 Redis 集群搭建方案及实现原理

    " 在前面的文章中已经介绍了 本文将详细介绍集群,主要内容包括: 集群的作用 集群的搭建方法及设计方案 集群的基本原理 客户端访问集群的方法 实践须知(集群伸缩.故障转移.参数优化等) 集群 ...

  9. redis客户端连接数量_实战解析无所不知的Redis拓展应用——Info,进阶学习,无所不能...

    前言 学习是一个持续的过程.像咱们一直在更新的Redis学习内容,由基础结构,到原理应用,再到集群搭建,了解的够充分了,咱们接着又介绍Redis拓展应用,将知识面拓宽,毕竟技术都是相通的,只有灵活运用 ...

  10. redis java zset_Redis从入门到放弃系列(五) ZSet

    Redis从入门到放弃系列(五) ZSet 本文例子基于:5.0.4 ZSet是Redis中一种比较复杂的数据结构,当存储大小在128之内且member得长度在64以下,其实现为zipList,超过为 ...

最新文章

  1. pandas对dataframe的数据行(rows)进行随机抽样:使用sample函数进行数据行(rows)随机抽样
  2. z变换公式表_各种钣金折弯极限尺寸计算公式汇总,干货!
  3. 如何写一篇酷炫的博文(博文列表中展现字幕)
  4. video 属性和事件用法大全
  5. mysql中有sa_SA工作-mysql设计规范
  6. 【STM32】FLASH擦写+FLASH相关操作+注意事项
  7. 不是华为!国内首款5G手机开卖:10分钟送达第一单
  8. SQL Server 建库,表,约束(一)
  9. python画素描画_画画了,画画了,几行Python就成一幅素描画
  10. 用电脑上的计算器计算反三角函数
  11. 软工文档——可行性研究报告
  12. LIN总线、CAN总线、FlexRay总线和MOST总线
  13. 万物互联天下 创造未来奇迹
  14. kernel启动流程第二阶段
  15. vue+flv.js实现视频播放
  16. C# 添加Word页眉、页脚和页码
  17. Visual C++ 2010如何解决程序运行闪退问题
  18. E. Xenon's Attack on the Gangs,Codeforces Round #614 (Div. 2),树形dp
  19. 洛谷【T279725】搬砖
  20. 重庆天象网络技术:三分构图法帮你做好版式设计

热门文章

  1. android应用和苹果,苹果和安卓都可以用的经典app
  2. 0730Python总结-正则表达式
  3. Java 如何对用户电话号码的打码隐藏加星号加*处理?
  4. 网页嵌入快播播放器并实现服务器视频文件连续播放
  5. InterSystems开发者社区中文版上线:打造更高效的技术交流和资源共享平台
  6. 【PYQT项目】摄像头拍照保存
  7. 椎动脉型颈椎病的分析
  8. [cryptoverse CTF 2023] crypto部分
  9. 软件工程第三周作业:微软必应词典案例分析
  10. 一个发现问题解决问题的思路