redis 由浅入深 之进阶(发布与订阅、事务、连接和Reids服务器)

2023-11-13

Redis发布与订阅

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

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


下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:


当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:



Redis 发布与订阅相关指令:

  • psubscribe(pattern, 匹配通道(待会详解)):订阅一个或多个符合给定模式的通道。
  • pubsub(channel):查看订阅与发布系统状态
  • publish(channel, content):将指定信息发布到指定通道中
  • punsubscribe(channel,匹配通道):退订所有符合模式的指定通道
  • subscribe(channel):订阅指定通道
  • unsubscribe(channel):退订指定通道

实列代码:



重点:redis 匹配模式语法:

每个模式以 * 作为匹配符,比如 it* 匹配所有以 it 开头的频道( it.news 、 it.blog 、 it.tweets 等等)。 news.* 匹配所有以 news. 开头的频道( news.it 、 news.global.today 等等),诸如此类。


Redis 事务:

Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:

  • 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
  • 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

一个事务从开始到执行会经历以下三个阶段:

  • 开始事务。
  • 命令入队。
  • 执行事务。

Redis事务相关指令:

  • discard:取消事务,放弃执行事务内包含的指令。
  • exec:执行事务中相关指令
  • multi:标记一个事务开始
  • unwatch:取消watch指令,对所有key的监视。
  • watch(key):用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断

实列代码:



Redis 连接:

Redis 连接命令主要是用于连接 redis 服务。


Redis 连接相关指令:

  • auth(password):用于检测给定的密码和配置文件中的密码是否相符
  • echo(message):用于打印给定的字符串
  • ping:使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。

    通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值。

  • quit:用于关闭与当前客户端与redis服务的连接。一旦所有等待中的回复(如果有的话)顺利写入到客户端,连接就会被关闭
  • select(index):用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值.


Redis 连接服务器就不做相关Demo 的演示,各位码农可以自己多多动手。


今天的内容已经讲解的比较多,还剩下Redis 服务器,我准备在下一章节中进行讲解。




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

redis 由浅入深 之进阶(发布与订阅、事务、连接和Reids服务器) 的相关文章

  • 数据库:什么是主键

    数据库主键 主键 表中经常有一个列或列的组合 其值能唯一地标识表中的每一行 通俗叫 一个表中只能有一个主键 不接受空值 能唯一的表示表中的每一行 例如 银行卡的卡号就是主键 不存在重复的情况
  • Java 数据类型转换(Casting)

    Java中 经常可以遇到类型转换的场景 从变量的定义到复制 数值变量的计算到方法的参数传递 基类与派生类间的造型等 随处可见类型转换的身影 Java中的类型转换在Java编码中具有重要的作用 本文主要介绍一下Java 数据类型转换 Cast
  • 华为防火墙默认密码是什么?

    华为默认密码是什么 分享至 小王邀请您加入牛B的IT关键业务推动者社区 点击领取12G的软考 PMP资料包 特训营名额 gt gt 售前工程师系列 教你写解决方案 gt gt ld11235813 荣誉会员 Rank 12Rank 12Ra
  • 华为动态pnat配置

  • 微软宣布IE9正式版发布日期

    微软上月曾透露会在3月14日于美国德克萨斯州奥斯汀市SXSW音乐电影节上举办一个庆祝派对 从那时起就有很多猜想 我们才曾猜测微软届时会正式发布IE9 今天 微软终于不再卖关子 3月14日 也就是下周一 微软将正式发布IE9 微软证实 美国太
  • TensorFlow之双隐含层多层感知器(MLP)

    程序改自上一篇博客 使用了双隐含层 第二层隐含层初始w需要和第一层类似 否则程序正确率一直在0 1左右 修改后的程序正确率也在98 左右 coding utf 8 from tensorflow examples tutorials mni
  • 整理一些windows的bat命令及语法

    ver 在DOS窗口下显示版本信息 winver 弹出一个窗口显示版本信息 内存大小 系统版本 补丁版本 计算机名 format 盘符 FS 类型 格式化磁盘 类型 FAT FAT32 NTFS 例 Format D FS NTFS md
  • python基础系列之元组

    元组应用场景 储存多个数据 但是这些数据不可修改 我们知道列表可以储存多个数据 但是数据可增加 修改 删除 这也是元组和列表不一样的地方 如何定义一个元组 多个数据元组 t1 10 20 30 单个数据元组 t2 10 注意在定义单个数据的
  • 常量表达式函数

    我们可以在函数返回类型前加入关键字constexpr来使其成为常量表达式函数 但并非所有的函数都有资格成为常量表达式函数 事实上 常量表达式函数的要求非常严格 总结如下 函数体只有单一的return返回语句 函数必须返回值 不能是void函
  • 合并排序-递归分治

    按我的想法 简单地说 合并排序的思路就是 先递归 后排序 include
  • Java中的运算符

    1 算术运算符 基本四则运算符 1 规则比较简单 需要注意的是除法 int int 的结果还是 int 要想结果中有小数需要使用 double 类型 0 不能用来做除数 2 在Java中 表示取余 不仅可以对 int 求模 也可以对 dou
  • Tomcat Server处理一个http请求的过程

    Tomcat Server处理一个http请求的过程 假设来自客户的请求为 http localhost 8080 wsota wsota index jsp 1 请求被发送到本机端口8080 被在那里侦听的Coyote HTTP 1 1
  • 爬虫逆向实战(13)-某课网登录

    一 数据接口分析 主页地址 某课网 1 抓包 通过抓包可以发现登录接口是user login 2 判断是否有加密参数 请求参数是否加密 通过查看 载荷 模块可以发现有一个password加密参数 还有一个browser key这个可以写死不

随机推荐

  • C++ Pat甲级1013 Battle Over Cities (25 分)(求图的连通分量dfs)

    1013 Battle Over Cities 25 分 It is vitally important to have all the cities connected by highways in a war If a city is
  • 数字SOC设计之低功耗设计入门(六)——门级电路低功耗设计优化

    三 门级电路低功耗设计优化 1 门级电路的功耗优化综述 门级电路的功耗优化 Gate Level Power Optimization 简称GLPO 是从已经映射的门级网表开始 对设计进行功耗的优化以满足功耗的约束 同时设计保持其性能 即满
  • 【STM32篇】驱动MXL90614红外测温模块

    本次实验使用的测温模块型号GY 906 DCC模块 测距为10cm左右 一 简介 MLX90614 是一款红外非接触温度计 TO 39 金属封装里同时集成了红外感应热电堆探测器芯片和信处理专用集成芯片 由于集成了低噪声放大器 17 位模数转
  • 文件读/写操作 import pickle

    文件写 开 文件变量 open 文件路径文件名 web 存 pickle dump 待写入的变量 文件变量 关 文件变量 close 文件读 开 文件变量 open 文件路径文件名 rb 取 放内容的变量 pickle load 文件变量
  • 小程序 -- 分包

    来源 1 什么是分包 分包指的是把一个完整的小程序项目 按照需求划分为不同的子包 在构建时打包成不同的分包 用户在使用时按需进行加载 2 分包的好处 对小程序进行分包的好处主要有以下两点 可以优化小程序首次启动的下载时间 在多团队共同开发时
  • 二叉树之层次遍历(js)

    二叉树之层次遍历 输入一棵二叉树 你的任务是从上到下 从左到右的顺序输出各个结点的值 每个结点都是按照从根节点到它移动序列给出 L表示左 R表示右 在输入中 每个结点的左右括号之间没有空格 相邻节点之间用一个空格隔开 输入 11 LL 7
  • GameFi 大爆发?五款令人期待的链游

    大家好 我是晴天defi 在今年 有许多游戏公司陆续推出自家的IP大作 像是任天堂出的宝可梦 阿尔宙斯 Sony 的地平线 西域禁地 Techland 的垂死之光 2 就连那位喜欢虐待玩家的宫崎英高 也跟着推出他的全新虐待新作 艾二登 法环
  • Qt使用QGraphicsView实现滑动窗体效果 .

    源码已上传至CSDN http download csdn net source 2808505 QGraphicsView用来显示一个滚动视图区的QGraphicsScene内容 QGraphicsScene提供了QGraphicsIte
  • 深入理解mongodb和hbase区别

    最近公司想要做数据分析 之前我们公司用的是免费的growing IO 他们分析仅限于界面跳转的转化率 不能详细地分析业务数据 我研究了一个需要埋点的产品 搞明白他们是在每个接口的调用埋点 将用户对接口的调用行为记录下来 进行分析 由于接口众
  •  Linux下读写文件操作

    Linux下读写文件操作 include
  • Error: Could not create the Java Virtual Machine. Error: A fatal exception h.....

    我处理的问题的方法 换成8解决的
  • Python地理数据处理 十七:植被物候提取和分析(Savitzky-Golay)

    Savitzky Golay滤波 1 引子 2 Savitzky Golay滤波提取物候信息 1 引子 import numpy as np import matplotlib pyplot as plt from scipy signal
  • LeetCode0752-打开转盘锁

    LeetCode0752 打开转盘锁 题目 你有一个带有四个圆形拨轮的转盘锁 每个拨轮都有10个数字 0 1 2 3 4 5 6 7 8 9 每个拨轮可以自由旋转 例如把 9 变为 0 0 变为 9 每次旋转都只能旋转一个拨轮的一位数字 锁
  • 2.Spark运行模式

    1 Spark运行模式概述 Local 多用于本地测试 如在IDEA PyCharm Visual StudioCode中写程序测试等 Standalone Standalone是Spark自带的一个资源调度框架 它支持完全分布式 Yarn
  • postman单个请求批量发送

    第一部 抓取单个请求选择一个请求 copy as cURL bash 第二步 复制到postman 并保存 第三步 单个请求批量发送 点击Runner i第四步 选择刚才的请求 设置发送次数Iterations 点击run 成功
  • Java 常用API

    Java 常用API JFC Java类库 是系统提供的已实现的标准类的集合 是Java编程的API Application Program Interface 可帮助开发者方便 快捷地进行软件开发 Java按其不同的功能分成不同的包 常用
  • [极客大挑战 2019]LoveSQL 1

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 极客大挑战 2019 LoveSQL 1 题目 一 做题步骤 1 万能密码尝试 2 测试注入列数 3 测试注入点 4 查询数据库 5 查询表名 6 查询列名 字段 7 查询数
  • 【猿人学WEB题目专解】猿人学第15题

    据说 看我文章时 关注 点赞 收藏 的 帅哥美女们 心情都会不自觉的好起来 前言 作者简介 大家好我是 user from future 意思是 来自未来的用户 寓意着未来的自己一定很棒 个人主页 点我直达 在这里肯定能找到你想要的 专栏介
  • TCP和UDP的最完整的区别

    欢迎访问个人网站 这里排版舒服点 TCP和UDP的最完整的区别 码到城攻TCP和UDP的最完整的区别https www codecomeon com posts 7 TCP UDP TCP与UDP基本区别 1 基于连接与无连接 2 TCP要
  • redis 由浅入深 之进阶(发布与订阅、事务、连接和Reids服务器)

    Redis发布与订阅 Redis 发布订阅 pub sub 是一种消息通信模式 发送者 pub 发送消息 订阅者 sub 接收消息 Redis 客户端可以订阅任意数量的频道 下图展示了频道 channel1 以及订阅这个频道的三个客户端 c