首页 > 数据库 >Redis 发布订阅

Redis 发布订阅

时间:2022-10-18 15:36:08浏览次数:74  
标签:订阅 频道 ... Redis 发布 消息 客户端

什么是发布和订阅

在软件架构中,发布订阅是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)可能存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者(如果有的话)存在。

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

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

Redis的发布和订阅

1、客户端可以订阅频道如下图

image-20211207064618934

2、当给这个频道发布消息后,消息就会发送给订阅的客户端

image-20211207064649952

发布订阅命令行实现

序号 命令及描述
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 ...]] 指退订给定的频道。

1、 打开一个客户端订阅channel1

SUBSCRIBE channel1

image-20211215171801678

2、打开另一个客户端,给channel1发布消息hello

publish channel1 hello

image-20211215171823364

返回的1是订阅者数量

3、打开第一个客户端可以看到发送的消息

image-20211207064531505

注:发布的消息没有持久化,如果在订阅的客户端收不到hello,只能收到订阅后发布的消息

image-20211213192007115

标签:订阅,频道,...,Redis,发布,消息,客户端
From: https://blog.51cto.com/lianghecai/5766732

相关文章

  • KubeEdge SIG AI发布首个分布式协同AI Benchmark调研
    摘要:AIBenchmark旨在衡量AI模型的性能和效能。本文分享自华为云社区《KubeEdgeSIGAI发布首个分布式协同AIBenchmark调研》,作者:KubeEdgeSIGAI(成员:张扬,张子阳)。人工......
  • 再添神器!Paddle.js 发布 OCR SDK
    关键词:OCR、Paddle.js、PaddleOCR01前言OCR(OpticalCharacterRecognition,光学字符识别)是文字识别的统称,不仅支持文档或书本文字识别,还包括识别自然场景下的文字,又可以称为......
  • Redis6 持久化
    RDB(RedisDataBase)在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里Redis会单独创建(fork)一个子进程来进......
  • 【Kubernetes】K8s笔记(八):Deployment 发布无状态的应用
    目录1.DeploymentAPI对象2.使用YAML描述Deployment3.操作Deployment4.labels字段的使用方法1.DeploymentAPI对象我们之前学习了API对象Job和CronJob,......
  • centos7安装redis6.2
    一、下载安装包[root@glusterfs03~]#wgethttps://download.redis.io/releases/redis-6.2.7.tar.gz--2022-10-1810:35:21--https://download.redis.io/releas......
  • Redis
    非关系型数据库,结构上key-value存储。redisdoc.com#在线的命令手册memcache,是纯内存型数据库。redis是内存+磁盘。2者全部数据都是保存在内存中。redis3.0开始支持re......
  • Redis Zset的实现为什么用跳表,而不用平衡树?
    之前写过一篇Redis数据类型的底层数据结构的实现,其中提到,ZSet对象的底层数据结构实现之一是跳表。然后,有读者就问:为什么不使用平衡树(如红黑树、AVL树)?我们先来了解下......
  • goRedis
    goRedis简介实现redis操作使用gogetgithub.com/wms3001/goRedis实例连接goRedis:=GoRedis{}goRedis.Db=10goRedis.Addr="192.168.4.81:6379"goRedis.Password="gl......
  • redis配置
    redis配置1.使redis后台运行1)编辑redis.conf文件2)在vim编辑器输入/dae查找到daemonize将值改为yes2.设置密码1)编辑redis.conf文件2)在vim编辑器输入/requirepass查......
  • Redis6.2集群部署
    复制集群概述&.集群特点(1)读写分离:Redis复制集群采用主写从读机制进行读写分离,易于性能扩展.(2)数据容灾:Redis复制集群仅支持一主多从,且从服务器也可以关联从服......