一步一步学习Redis——发布订阅功能

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 一步一步学习Redis——发布订阅功能

文章目录:


1.开篇

1.1 发布订阅功能的实现 

2.Redis发布订阅的相关命令

2.1 SUBSCRIBE命令

语法

返回值

2.2 PUBLISH命令

语法

返回值

2.3 UNSUBSCRIBE命令 

语法

返回值

2.4 PSUBSCRIBE命令

语法

返回值

2.5 PUBSUB命令

语法

返回值

2.6 PUNSUBSCRIBE命令

语法

返回值

1.开篇


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

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

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

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

1.1 发布订阅功能的实现 


2.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...]
指退订给定的频道。

2.1 SUBSCRIBE命令

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

语法

redis 127.0.0.1:6379> SUBSCRIBE channel [channel ...]

返回值

接收到的信息


2.2 PUBLISH命令

Redis Publish 命令用于将信息发送到指定的频道。
语法
redis 127.0.0.1:6379> PUBLISH channel message
返回值
接收到信息的订阅者数量。


2.3 UNSUBSCRIBE命令 

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

语法

redis 127.0.0.1:6379> UNSUBSCRIBE channel [channel ...]

返回值

这个命令在不同的客户端中有不同的表现。

2.4 PSUBSCRIBE命令

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

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

语法

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

返回值

接收到的信息。

2.5 PUBSUB命令

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

语法

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

返回值

由活跃频道组成的列表。

2.6 PUNSUBSCRIBE命令

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

语法

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

返回值

这个命令在不同的客户端中有不同的表现。

相关文章
|
1月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
333 5
|
3月前
|
存储 NoSQL Redis
采用Redis的Bitmaps实现类似Github连续提交状态的功能。
在现实世界的应用开发中,实现类似于Github提交跟踪系统时,还可能需要考虑用户时区、闰年等日期相关的边界条件,以及辅助数据的存储和查询优化,例如对活跃用户的即时查询和统计等。不过这些都可以在Bitmaps的基础功能之上通过额外的代码逻辑来实现。
108 0
|
6月前
|
消息中间件 缓存 NoSQL
基于Spring Data Redis与RabbitMQ实现字符串缓存和计数功能(数据同步)
总的来说,借助Spring Data Redis和RabbitMQ,我们可以轻松实现字符串缓存和计数的功能。而关键的部分不过是一些"厨房的套路",一旦你掌握了这些套路,那么你就像厨师一样可以准备出一道道饕餮美食了。通过这种方式促进数据处理效率无疑将大大提高我们的生产力。
237 32
|
NoSQL Redis
Redis 发布订阅
10月更文挑战第18天
112 1
Redis 发布订阅
|
6月前
|
存储 监控 NoSQL
使用Redis实现延迟消息发送功能
使用 Redis 的密码认证功能,为实例设置密码以防止未授权访问。为消息提供适当加密,确保消息内容在网络传输过程中不被窃取或篡改。
264 16
|
9月前
|
NoSQL Redis 数据库
Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
通过本文的介绍,我们详细讲解了 Lua 脚本在 Redis 中的作用、`eval` 命令的使用方法以及 `redis.call` 和 `redis.pcall` 的区别和用法。通过合理使用 Lua 脚本,可以实现复杂的业务逻辑,确保操作的原子性,并减少网络开销,从而提高系统的性能和可靠性。
476 13
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
1740 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
存储 NoSQL PHP
如何用Redis高效实现点赞功能?用Set?还是Bitmap?
在众多软件应用中,点赞功能几乎成为标配。本文从实际需求出发,探讨如何利用 Redis 的 `Set` 和 `Bitmap` 数据结构设计高效点赞系统,分析其优缺点,并提供 PHP 实现示例。通过对比两种方案,帮助开发者选择最适合的存储方式。
361 3
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
1380 3
下一篇
oss云网关配置