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

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
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 ...]]

返回值

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

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
NoSQL Redis
Redis 发布订阅
10月更文挑战第18天
33 1
Redis 发布订阅
|
1月前
|
存储 NoSQL PHP
如何用Redis高效实现点赞功能?用Set?还是Bitmap?
在众多软件应用中,点赞功能几乎成为标配。本文从实际需求出发,探讨如何利用 Redis 的 `Set` 和 `Bitmap` 数据结构设计高效点赞系统,分析其优缺点,并提供 PHP 实现示例。通过对比两种方案,帮助开发者选择最适合的存储方式。
28 3
|
2月前
|
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时可能遇到的问题和解决方案。
140 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
2月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
301 3
|
2月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
36 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
2月前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
28 3
|
2月前
|
缓存 分布式计算 NoSQL
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
32 2
|
2月前
|
SQL 分布式计算 NoSQL
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
25 2
|
2月前
|
NoSQL Redis
redis学习五、错误总结,redis正常运行时后会出现一些bug 总结。
本文介绍了Redis在正常运行时可能遇到的一个错误,即无法进行磁盘持久化的问题,并提供了通过设置`stop-writes-on-bgsave-error`为`no`来解决这一问题的方案。
106 0