2024.11.5- Redis(3)

五 Redis的发布订阅

5.1 介绍

Redis通过publish、subscribe和psubcribe、Unsubscribe和punsubscribe等命令实现发布、订阅和退订功能。这些命令被广泛用于构建即时通信应用,比如网络聊天室(chatroom)和实时广播、实时提醒等。
​
角色:
-- 客户端通过PUBLISH命令向通道发送信息的时候,我们称这个客户端为发布者(publisher)。
-- 客户端使用SUBSCRIBE或者PSUBSCRIBE命令接收信息的时候,我们称这个客户端为订阅者(subscriber)。
​
为了解耦发布者(publisher)和订阅者(subscriber)之间的关系,Redis 使用了 channel (频道)作为两者的中介 —— 发布者将信息直接发布给 channel ,而 channel 负责将信息发送给适当的订阅者,发布者和订阅者之间没有相互关系,也不知道对方的存在
​
​
注意:由于redis订阅发布功能不做消息缓存,所以需要订阅者先订阅通道,然后发布者再发布数据。

5.2 subscribe的原理

 开启第一个客户端,运行订阅者程序:
    subscribe news food
开启第二个客户端,运行订阅者程序:
    subscribe news food
开启第三个客户端,运行发布者程序:
    publish food apple

5.3 psubscribe的原理

p:是pattern的意思, 指的是模式订阅,比如 订阅k*,n*, ?o*这样的通道。

开启第一个客户端:
    psubscribe n* f*
开启第二个客户端:
    subscribe  n* k*
开启第三个客户端:
    publish food apple        第一个客户端可以收到

5.4 知识扩展:

字典
①基础知识点:
--Dictionary是存储键和值的集合;
--Dictionary是无序的,键Key是唯一的;
--通过Key找到对应的Value,游戏中通常通过使用ID,ID关联用户的所有信息,从而找到玩家的其他游戏信息。
②优点:查找速度快,能根据键快速查找值。
③缺点:内存开销大。

​
链表
①优点:
--链表在内存存储的排序上不连续,而是靠各对象的指针所决定,添加元素和删除元素比数组优势;
--链表适合在需要有序的排序的情境下增加新的元素,增加新的元素只是若干元素的指向发生变化。
②缺点:其在内存空间中不一定连续排列,访问时无法利用下标,必须从头结点开始,逐次遍历下一个节点直到寻找到目标,不适用于需要快速访问对象的情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/909319.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【时间之外】IT人求职和创业应知【27】

目录 新闻一物理智能公司完成4亿美元融资 新闻二A股IPO和再融资受理、审核回暖 新闻三AI流量变现财富峰会举办 认知和思考决定了你的赚钱能力。以下是今天可能引起你思考的热点新闻: 今日关键字:没吃过猪肉,还没见过猪跑吗? 新…

【软考网工笔记】网络基础理论——数据链路层

文章目录 按照分布范围对计算机网络进行划分MAC帧格式按照 802.1d 协议,交换机的端口状态ISDN-综合业务数字网以太网中退避机制生成树协议的工作过程链路聚合技术数字编码的过程信道复用技术802.11系列标准NRZ-I 反向不归零码千兆以太网标准百兆以太网标准PON 接入技…

linux mysql8大小写敏感问题

问题描述 在windows或者macOs,mysql对表明的大小写是不敏感的,但是在linux上是敏感的。笔者写了一个程序,程序里的sql语句没有注意大小写问题,访问windows的mysql没有问题,但访问Linux的就出问题了。于是着手解决这个…

云集电商:如何通过 OceanBase 实现降本 87.5%|OceanBase案例

云集电商,一家聚焦于社交电商的电商公司,专注于‘精选’理念,致力于为会员提供超高性价比的全品类精选商品,以“批发价”让亿万消费者买到质量可靠的商品。面对近年来外部环境的变化,公司对成本控制提出了更高要求&…

Claude 3.5 Sonnet模型新增了PDF支持功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

02-5分钟打造鸿蒙第一个应用程序

大家好,欢迎来到鸿蒙开发的奇妙世界!如果你对编程感兴趣,却又不知道从何开始,那么今天的文章将是你最好的起点。我们将用短短5分钟的时间,带你快速入门鸿蒙开发,用 ArkTS 编写并运行你的第一个鸿蒙应用程序…

一篇文章速通Java开发Stream流(流水线开发附斗地主小游戏综合案例)

1-认识Sream流 是JDK8开始新增的一套API(java.util.stream.*),可以用于操作集合或者数组的数据。 优势:Stream流大量的结合了Lambda语法风格来编程,功能强大,性能高效,代码简洁,可…

练习LabVIEW第三十七题

学习目标: 刚学了LabVIEW,在网上找了些题,练习一下LabVIEW,有不对不好不足的地方欢迎指正! 第三十七题: 利用XY GRAPH 构成李萨如图形 开始编写: 前面板放一个XY图控件,程序框图…

ubuntu20.04 加固方案-检查是否设置登录超时

一、编辑/etc/profile配置文件 打开终端。 使用文本编辑器(如vim)编辑/etc/profile 文件。 vi /etc/profile 二、添加配置参数 在打开的配置文件中,如图位置添加如下参数: TMOUT1800 export TMOUT三、保存并退出 在vim编辑器…

算法:图的相关算法

图的相关算法 1. 图的遍历算法1.1 深度优先搜索1.2 广度优先搜索 2. 最小生成树求解算法普里姆(Prim)算法克鲁斯卡尔(Kruskal)算法 3. 拓扑排序4. 最短路径算法 1. 图的遍历算法 图的遍历是指从某个顶点出发,沿着某条搜索路径对图中的所有顶点进行访问且只访问次的…

智能语音机器人智能在哪里?AI人工智能电话机器人部署

随着科技的不断进步,人工智能已经成为了我们生活中不可或缺的一部分。AI人工智能机器人电话正是其中的一种形式,可以帮助企业或组织更好地实现电话营销的目标,那么智能语音机器人智能在哪里?我们来看看: 智能语音机器人&#xf…

半波正弦信号的FFT变换

目录 Hello, 大家好,这一期我们谈谈半波正弦信号的FFT变化长什么样子。本文硬件使用GFARM02硬件模块[1],文章最后有其淘宝链接。核心器件为STM32F103RCT6,为Cortex-M3核,采用的CMSIS版本为CMSIS_5-5.6.0。 如图1所示&…

计算机网络:网络层 —— 移动 IP 技术

文章目录 IPv6IPv6 的诞生背景主要优势IPv6引进的主要变化 IPv6数据报的基本首部IPv6数据报首部与IPv4数据报首部的对比 IPv6数据报的拓展首部IPv6地址IPv6地址空间大小IPv6地址的表示方法 IPv6地址的分类从IPv4向IPv6过渡使用双协议栈使用隧道技术 网际控制报文协议 ICMPv6ICM…

window 利用Putty免密登录远程服务器

1 在本地电脑用putty-gen生成密钥 参考1 参考2 2 服务器端操作 将公钥上传至Linux服务器。 复制上述公钥到服务器端的authorized_keys文件 mkdir ~/.ssh vi ~/.ssh/authorized_keys在vi编辑器中,按下ShiftInsert键或者右键选择粘贴,即可将剪贴板中的文…

词嵌入模型:Skip-Gram模型和CBOW模型

目录 Skip-Gram模型和CBOW模型 一、实现方式 二、训练目标 三、应用场景选择 Skip-Gram模型和CBOW模型 都是Word2Vec的两种实现方法,它们的确在实现方式和训练目标上有所不同,但共同的目标都是学习词汇的分布式表示(即词向量),以便捕捉词与词之间的语义和句法关系。以…

使用docker安装zlmediakit服务(zlm)

zlmediakit安装 zlmediakit安装需要依赖环境和系统配置,所以采用docker的方式来安装不容易出错。 docker pull拉取镜像(最新) docker pull zlmediakit/zlmediakit:master然后先运行起来 sudo docker run -d -p 1935:1935 -p 80:80 -p 8554:554 -p 10000:10000 -p …

微信小程序 uniapp+vue老年人身体监测系统 acyux

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 过此方式促进老年人辅助程序信息流动和数据传输效率,提供一个内容丰富、功能多样、易于操作的老年人辅助程序…

什么是Scaling Law,谈谈你对它的理解

1. 什么是Scaling Law 1.1 Scaling Law的目标 Having a sense of the capabilities of a model before training can improve decisions around alignment, safety, and deployment. — GPT4 Technical Report 在训练之前了解模型的能力,以改善关于大模型的对齐、…

Postgresql源码(137)执行器参数传递与使用

参考 《Postgresql源码(127)投影ExecProject的表达式执行分析》 0 总结速查 prepare p_04(int,int) as select b from tbl_01 where a $1 and b $2为例。 custom计划中,在表达式计算中使用参数的值,因为custom计划会带参数值&…

MMBench-Video:上海 AI Lab 联合多所高校推出长视频理解基准测试工具,全面评估 LVLMs 视频理解的能力

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦! 🥦 微信公众号&#xff…