一步一步学习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 ...]]

返回值

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

相关实践学习
基于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 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。 图中,消费者1和消费者2 订阅了 Redis 服务的频道 channel ,当生产者通过 PUBLISH 命令发送给频道 channel 时, 这个消息就会被发送给订阅它的两个客户端。
聊聊 Redis 的高级特性之一: 发布订阅
|
3月前
|
NoSQL 中间件 API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(下)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
82 2
|
13天前
|
消息中间件 设计模式 缓存
Redis发布订阅:美丽的陷阱与不宜之境
Redis发布订阅:美丽的陷阱与不宜之境
43 1
|
22天前
|
存储 NoSQL 数据处理
Redis Lua脚本:赋予Redis更强大的逻辑与功能
Redis Lua脚本:赋予Redis更强大的逻辑与功能
|
27天前
|
缓存 NoSQL Shell
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)
138 0
|
27天前
|
存储 缓存 NoSQL
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)(一)
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)
293 0
|
1月前
|
缓存 NoSQL Java
spring cache整合redis实现springboot项目中的缓存功能
spring cache整合redis实现springboot项目中的缓存功能
46 1
|
1月前
|
存储 NoSQL Java
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
54 0
|
2月前
|
存储 NoSQL 算法
学习 Redis 基础数据结构,不讲虚的。
职场中是这样使用 redis 的。
151 1
学习 Redis 基础数据结构,不讲虚的。
|
2月前
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
298 0

热门文章

最新文章