redis 消息订阅命令

在 Redis 中,消息订阅和发布是一种用于实现消息传递的机制。主要命令包括 SUBSCRIBEUNSUBSCRIBEPUBLISHPSUBSCRIBE 等。下面是如何使用这些命令的详细说明和示例。

1. SUBSCRIBE 命令

SUBSCRIBE 命令用于订阅一个或多个频道,以接收这些频道发布的消息。

SUBSCRIBE channel1 channel2

2. UNSUBSCRIBE 命令

UNSUBSCRIBE 命令用于取消订阅一个或多个频道。

UNSUBSCRIBE channel1 channel2

3. PUBLISH 命令

PUBLISH 命令用于向一个频道发布消息。

PUBLISH channel1 "Hello, World!"

4. PSUBSCRIBE 命令

PSUBSCRIBE 命令用于订阅与模式匹配的一个或多个频道。

PSUBSCRIBE news.*

示例

1. 订阅和接收消息

在一个 Redis 客户端中订阅频道:

redis-cli
> SUBSCRIBE channel1

此时,该客户端将进入订阅模式并等待来自 channel1 的消息。

2. 发布消息

在另一个 Redis 客户端中发布消息:

redis-cli
> PUBLISH channel1 "Hello, Channel 1!"

在第一个客户端中,你会看到如下输出:

1) "message"
2) "channel1"
3) "Hello, Channel 1!"
3. 模式匹配订阅

在一个 Redis 客户端中订阅匹配模式的频道:

redis-cli
> PSUBSCRIBE news.*

此时,该客户端将接收所有匹配 news.* 模式的频道消息。

在另一个 Redis 客户端中发布消息:

redis-cli
> PUBLISH news.sports "Sports News"
> PUBLISH news.weather "Weather News"

在第一个客户端中,你会看到如下输出:

1) "pmessage"
2) "news.*"
3) "news.sports"
4) "Sports News"
1) "pmessage"
2) "news.*"
3) "news.weather"
4) "Weather News"

使用 Lua 脚本进行消息订阅

在 OpenResty 或其他嵌入式 Lua 环境中,你可以使用 Lua 脚本与 Redis 进行交互。

1. 使用 Lua 脚本订阅 Redis 频道
local redis = require "resty.redis"
local red = redis:new()red:set_timeout(1000) -- 1 seclocal ok, err = red:connect("127.0.0.1", 6379)
if not ok thenngx.say("failed to connect: ", err)return
endlocal res, err = red:subscribe("channel1")
if not res thenngx.say("failed to subscribe: ", err)return
endwhile true dolocal res, err = red:read_reply()if res thenngx.say("received message: ", res[3])elsengx.say("failed to read reply: ", err)breakend
end
2. 使用 Lua 脚本发布 Redis 消息
local redis = require "resty.redis"
local red = redis:new()red:set_timeout(1000) -- 1 seclocal ok, err = red:connect("127.0.0.1", 6379)
if not ok thenngx.say("failed to connect: ", err)return
endlocal res, err = red:publish("channel1", "Hello, World!")
if not res thenngx.say("failed to publish: ", err)return
endngx.say("message published to channel1")

通过这些示例,你可以在 Redis 中实现基本的消息订阅和发布功能。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见sql语句练习

Tips:之前查看网上的文章感觉太乱了,所以自己整理了一套sql语句来练习,主要也可以拿来应对面试,需要的可以自行下载练习 包含基本语句、聚合函数、模糊查询、范围查询、排序、聚合、分组、分页、子查询、索引和视图、左右连接、双…

无人值守过磅管理系统实现数据实时传递

依据为某公司信息化系统建设前提下,客商平台在线预约称重、车辆到场智能排队系统、空车入场取装车票装车、门岗智能管控系统、建设地磅无人值守、进出货场管理系统、手机APP远程派车、查询报表、查询实时过磅数据,集中式监控管理系统,配合无人…

分享快乐,分享5款我认为好用的软件

​ 分享是奉献的果实,分享是快乐的前提。每天给小伙伴们分享自己认可的软件,也是莫大的一种幸福,今天依然带来五款好用的软件。 1.文本编辑——Notepads ​ Notepads是一款简约高效的文本编辑器,专为Windows10及以上版本设计。它…

Debian linux安装最新版Cmake

直接sudo apt install camke不是最新版本 卸载cmake sudo apt autoremove cmake下载cmake cmake官网 最上面的是候选版本,往下滑是最新稳定版 解压(改成自己的包) tar -zxvf cmake-3.30.0-rc4.tar.gz进入解压后的文件夹 lscd cmake-3.3…

每天一个数据分析题(三百九十二)- 多元线性回归

多元线性回归的正规方程组中系数矩阵X’X的阶数等于?(p个变量,n个观测值) A. n B. p-1 C. p D. n-1 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Py…

等保测评——云计算扩展测评项

安全物理环境-基础设施位置 应保证云计算基础设置位于中国境内。 该控制点是针对云计算平台提出的安全要求,公有云服务商和自建私有云的企业或组织在规划设计时应同步考虑此安全要求。无论是自建数据中心还是租赁第三方基础设施,其数据机房及云计算相关…

java常用类(3)

目录 一. 正则表达式 二. Math类 三. Random类 四. Date类 五. Calendar类 六. SimpDateFormate类 七. BigInteger类 八. BigDecimal类 一. 正则表达式 正则表达式(Regular Expression)就是用一些特殊的符号去匹配一个字符串是否符合规则,利用String类中的matches()方…

提升效能:Symfony 性能优化实用指南

Symfony 是一个功能丰富的 PHP Web 框架,但在构建高性能应用程序时,开发者需要考虑多种性能优化策略。本文将探讨一系列实用的 Symfony 性能优化技巧,帮助开发者提高应用程序的响应速度和整体性能。 1. 了解 Symfony 缓存机制 Symfony 提供…

蒙阴蜜桃节:北纬 35 度的甜蜜盛宴

蒙阴,这座位于北纬 35 度黄金水果带的魅力之城,凭借着沙壤土、长日照、大温差、好生态的天然禀赋,孕育出了令人陶醉的“蒙阴蜜桃——北纬 35 度的甜”。 7月2日—3日,主题为“蒙阴好丰景 桃香产业兴”的国家鲁中山区桃产业集群项目…

3d打开模型的时候怎么没有灯光?---模大狮模型网

在3D建模与渲染过程中,灯光是至关重要的元素之一,直接影响到最终场景的视觉效果和真实感。然而,有时打开3D模型时可能会发现缺乏适当的灯光设置,这会导致场景显得暗淡或平淡无奇。本文将探讨为何在打开3D模型时可能没有灯光的原因…

QGC添加添加QML可访问的单例

文章目录 前言一、添加文件二、修改qgroundcontrol.pro三、修改QGCApplication.cc四、修改QGroundControlQmlGlobal.h五、修改QGroundControlQmlGlobal.cc六、测试前言 QGC 4.2 一、添加文件 在src目录下添加文件夹SingletonTest,在里面新建SingletonTest.cc和SingletonTes…

OCR text detect

主干网络 VoVNet:实时目标检测的新backbone网络_vovnet pytorch-CSDN博客 DenseNet: arxiv.org/pdf/1608.06993 密集连接: DenseNet 的核心思想是将网络中的每一层与其前面的所有层直接连接。对于一个 L 层的网络,DenseNet 具有…

GIT将文件推送到远程仓库,即添加文件

摘自这里公开资料: git怎么让文件推送 • Worktile社区 要将文件推送到Git仓库,需要经过以下步骤: 1. 初始化Git仓库:在本地项目文件夹中打开命令行工具,并执行以下命令来初始化Git仓库: “shell git in…

Git学习(常用的一些命令)

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 配置相关: 创建与克隆仓库: 基本操作: 分支操作: 远程仓库操作&#xff1a…

重保期间的网站安全防护:网站整站锁的应用与实践

标题:重保期间的网站安全防护:网站整站锁的应用与实践 一、引言 在重大活动或事件(通常被称为“重保”)期间,网站的安全问题尤为突出。由于此时网站的访问量和关注度可能达到高峰,因此也成为了黑客攻击的…

【AI原理解析】—k-means原理

目录 步骤 注意事项 优点 缺点 步骤 初始化: 选择 k 个初始质心(通常通过随机选择数据集中的 k 个点作为初始质心)。迭代过程: 分配数据点到最近的质心: 对于数据集中的每个数据点,计算它与 k 个质心之…

博客的部署方法论

博客写完后,当然是要发布到网络上的。如果想要部署到服务器上,则需编译构建成静态文件,然后将其上传到服务器上的路径(该路径由我们自己决定),然后在 web 服务器(Nginx 等)上配置访问…

m4a如何改为mp3格式?这四种音频转换方法非常好用!

m4a如何改为mp3格式?在当下的生活中,音乐已经成为了人们疲惫时的一剂良药,它不仅可以舒缓心灵,还能够激发情感和启发思维,在众多音频文件格式中,m4a 作为一种常见的格式,备受广大音乐爱好者的青…

OpenCV 张氏标定法

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 “张正友标定法”是由张正友教授于1998年提出的单平面棋盘格的摄像头标定方法,该方法介于传统标定法和自标定法之间,克服了传统标定法需要高精度标定物的缺点,仅需要一个棋盘格即可。作为一种非常经典的相机内参标定…

动态规划 剪绳子问题

给一段长度为n的绳子&#xff0c;请把绳子剪成m段&#xff0c;每段绳子的长度为k[0],k[1],k[2],k[3]....k[m].请问k[0]k[1]k[2].....*k[m]的最大乘积为多少 #include <vector> // 包含vector头文件 #include <algorithm> // 包含algorithm头文件&#xff0c;用于m…