Java学习 - Redis慢查询与发布订阅与流水线

慢查询

慢查询是什么

  • 慢查询本质是慢查询日志,它记录了一些执行速度很慢的命令

慢查询与生命周期

  • 生命周期

     -------                   ------------------------------------------    
    |       |   1.发送请求     | redis服务端                              | 
    |   客  |  -------------->|              2.排队                      | 
    |   户  |                 |   cmd5->cmd4->cmd3->cmd2->cmd1           |
    |   端  |    4.返回结果    |                            |             |  
    |       | <---------------|                        3.执行命令         |-------                   ------------------------------------------
    
  • 慢查询发生在第3阶段

  • 客户端超时不一定是慢查询导致,慢查询是客户端超时的一个可能性

慢查询日志保存形式

  • 以队列方式存储,队列长度固定,一旦新的慢查询命令过多,最初的慢查询命令会从日志中删除
  • 慢查询日志保存在内存中,如果有必要,需要自己进行持久化

慢查询两大参数

  • slowlog-log-slower-than
    • 慢查询阈值,单位微秒,大于这个阈值的命令,被判定为慢查询,会加入慢查询日志中
    • 这个值=0,记录所有命令
    • 这个值<0,不记录任何命令
    • 默认值:10000
  • slowlog-max-len
    • 慢查询日志队列长度
    • 默认值:128

设置慢查询参数

  • 通过配置文件
  • 动态配置
    • config set slowlog-max-len 1000
    • config set slowlog-log-slower-than 1000

慢查询命令

  • slowlog get[n]
    • 获取慢查询队列中某个值
  • slowlog len
    • 获取慢查询队列的长度
  • slowlog reset
    • 清空慢查询队列
  • 可以配合上述命令对慢查询日志进行持久化

发布订阅

角色

  • 发布者 publisher
  • 订阅者 subscriber
  • 频道 channel

模型

在这里插入图片描述

命令

  • publish channel message

    publish sohu:tv "hello world"
    
  • subscribe [channel]…

    subscribe sohu:tv
    
  • unsubscribe [channel]…

    unsubscribe sohu:tv
    
  • psubscribe [pattern]

    通过模式去订阅
    
  • punsubscribe [pattern]

    取消匹配模式的订阅
    
  • pubsub channels

    列出至少有一个订阅者的频道
    
  • pubsub numsub [channel]…

    列出指定频道订阅者的数量
    

流水线 pipeline

网络传输时间与命令时间

  • 请求处理时间 = 网络传输时间 + 命令时间
  • 网络传输时间:客户端与服务端之间数据在网络传输过程中所消耗的时间
  • 命令时间:服务端处理命令所耗费的时间
  • 命令时间是很快的,所以请求处理时间主要取决于网络传输时间

pipeline是什么

  • pipeline可以将客户端多个命令进行打包,然后一次性通过网络传输到redis服务端,redis处理后,再一次性通过网络返回处理结果
  • 即 1次请求处理时间 = 1次网络请求时间 + n次命令时间

pipeline作用

  • 减少网络请求时间

pipeline注意事项

  • redis中M操作(mset,mget等等)是原子性的

  • pipeline不是原子性的

    其他命令->其他命令->pipeline子命令->其他命令->pipeline子命令->其他命令 ===>>> Server
    
  • pipeline每次只能作用在一个redis节点上

事务

redis事务

  • redis中单个命令是原子性的,但事务的执行并不是原子性的
    • 如果事务中间某条命令失败,也不会回滚,依旧执行下一条命令
  • redis开始事务后,命令不会立即执行,而是进入一个队列中,当提交事务后才会执行
    • 事务可以看作是一个批量执行脚本

事务的使用

  • 开始事务:MULTI
  • 命令入队
  • 执行事务:EXEC

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

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

相关文章

Simulink缓存文件有什么用?

在使用Simulink进行仿真的过程中&#xff0c;经常会发现目录下存在一些后缀为.slxc的文件&#xff0c;这些其实就是Simulink模型的缓存文件&#xff08;.slx cache&#xff09;。 Simulink缓存文件的主要作用是提高仿真和代码生成的效率。 借助缓存文件&#xff0c;可以避免…

Web浏览器读写NFC Ntag标签

本示例使用的发卡器&#xff1a;RS232串口USB转COM读写器IC卡发卡器WEB浏览器二次开发JS编程SDK-淘宝网 (taobao.com) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&g…

不锈钢氩弧焊丝ER316L

说明&#xff1a;TG316L 是超低碳的不锈钢焊丝。熔敷金属耐蚀、耐热、抗裂性能优良。防腐蚀性能良好。 用途:用于石油化工、化肥设备等。也可用于要求焊接后不进行热处理的高Cr钢的焊接。

真实评测:可道云teamOS文件上传功能丝滑到爱不释手

对于每日沉浸在图片与视频海洋中的媒体工作者而言&#xff0c;与海量的多媒体文件打交道几乎成了家常便饭。 文件的上传和存储&#xff0c;对他们而言&#xff0c;不仅仅是工作中的一个环节&#xff0c;更像是将一天的辛勤与付出妥善安置的仪式。无论是突发现场的精彩瞬间&am…

海报在线制作系统源码小程序

轻松设计&#xff0c;创意无限 一款基于ThinkPHPFastAdminUniApp开发的海报在线制作系统&#xff0c; 本系统不包含演示站中的素材模板资源。​ 一、引言&#xff1a;设计新纪元&#xff0c;在线海报制作引领潮流 在数字时代&#xff0c;海报已成为传播信息、展示创意的重要媒…

配音软件哪个好用?推荐5款智能配音软件

随着期末考来袭&#xff0c;校园里的空气似乎都凝固了&#xff0c;每个角落都充满了紧张的气氛。 然而&#xff0c;在这紧张的氛围中&#xff0c;有一群学生却显得格外从容&#xff0c;因为他们掌握了一种秘密武器——配音软件。这些软件就像是他们的个人学习助理&#xff0c;…

git 中有关 old mode 100644、new mode 10075的问题解决小结

问题&#xff1a; 同一个文件被修改后&#xff0c;最后代码没有变&#xff0c;文件变了&#xff0c;导致提交了一个空文件 git diff 提示 filemode 发生改变&#xff08;old mode 100644、new mode 10075&#xff09; 解决办法 &#xff1a; 原来是 filemode 的变化&#xff…

虚拟机字节码执行引擎之运行时栈帧结构

概述 执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定…

彩虹PLM系统:引领汽车行业的数字化转型

彩虹PLM系统&#xff1a;引领汽车行业的数字化转型 彩虹PLM系统作为汽车行业数字化转型的引领者&#xff0c;凭借其卓越的技术实力和丰富的行业经验&#xff0c;为汽车行业带来了全面的解决方案。以下是彩虹PLM系统如何引领汽车行业数字化转型的详细分析&#xff1a; 一、整合全…

约课健身管理系统小程序源码

健身达人的智能助手 一款基于FastAdminThinkPHPUniapp开发的米扬约课健身管理系统&#xff0c;应用于健身房&#xff0c;健身工作室&#xff0c;运动会所&#xff0c;运动场馆&#xff0c;瑜伽馆&#xff0c;拳馆等泛健身行业的场馆中。米扬约课健身致力于为各种健身场馆打造真…

Verilog刷题笔记49——Fsm1同步复位

题目&#xff1a; 解题&#xff1a; module top_module(clk,reset,in,out);input clk;input reset;input in;output out;parameter A0,B1;reg [1:0]current_state,next_state;always(posedge clk)beginif(reset)current_stateB;elsecurrent_statenext_state;endalways(*)beg…

手机图片怎么上传到电脑记事本 保姆级教程

在这个数字化时代&#xff0c;手机成了我们随身携带的摄影棚。无论是旅途中的美景&#xff0c;还是与朋友欢聚的瞬间&#xff0c;手机总能轻松捕捉。然而&#xff0c;手机存储空间有限&#xff0c;那些珍贵的照片和视频&#xff0c;怎样才能安全又方便地保存下来&#xff0c;供…

PFA量杯:精确、实用、高颜值的量杯选择!

您是否在烹饪、实验室实验或日常使用中需要一个精确、实用且高颜值的量杯&#xff1f;PFA量杯是您最佳的选择&#xff01; PFA量杯采用高品质材料制成&#xff0c;具有良好的耐腐蚀性、耐高温性&#xff0c;使用寿命长。透明度极高的杯身&#xff0c;使您在使用时能够清晰地看…

LLM在软件测试中的革新应用

一、引言 随着人工智能技术的蓬勃发展&#xff0c;大语言模型&#xff08;Large Language Model&#xff0c;简称LLM&#xff09;如GPT系列&#xff0c;在自然语言处理领域取得了显著进展。LLM不仅能够处理复杂的自然语言任务&#xff0c;还在多个领域展现出广泛的应用潜力。在…

深圳网页设计收费情况

深圳是中国最具活力和发展速度最快的城市之一&#xff0c;随着经济的快速发展&#xff0c;各种行业都飞速发展&#xff0c;尤其是互联网行业。网页设计是互联网行业的重要组成部分&#xff0c;深圳的网页设计师数量也是非常庞大的。那么&#xff0c;深圳网页设计师的收费情况是…

MySQL之可扩展性(五)

可扩展性 向外扩展 7.在节点上部署分片 需要确定如何在节点上部署数据分片。以下是一些常用的办法: 1.每个分片使用单一数据库&#xff0c;并且数据库名要相同。典型的应用场景是需要为每个分片都能镜像到原应用的结构。这在部署多个应用实例&#xff0c;并且每个实例对应一…

【Linux学习十八】网站管理:防火墙介绍、静态站点、动态站点、域名

1.Apache Apache官网: www.apache.org 软件包名称: httpd 服务端口:80/tcp(http) 443/tcp(https) 配置文件: /etc/httpd/conf/httpd.conf 子配置文件:/etc/httpd/conf.d/*.conf 查看被占用的端口号 netstat -tuln | grep <端口号> 解哪个程序正在使用端口 80&#xff0…

Jenkins通过Squid代理服务器添加局域网节点机器

✨前言&#xff1a; 当jenkins在公网上的时候&#xff0c;如果要添加局域网内的服务器为节点机器构建的时候&#xff0c;这里就需要通过squid代理服务来实现了。当然你也可以使用其他的方式例如Apache等等&#xff0c;这里主要介绍通过Squid的方式。 &#x1f31f;什么是Squi…

DllImport进阶:参数配置与高级主题探究

深入讨论DllImport属性的作用和配置方法 在基础篇中&#xff0c;我们已经简单介绍了DllImport的一些属性。现在我们将深入探讨这些属性的实际应用。 1. EntryPoint EntryPoint属性用于指定要调用的非托管函数的名称。如果托管代码中的函数名与非托管代码中的函数名不同&#…

计算机组成原理 | CPU子系统(3)MIPS32指令架构

MIPS32架构指令格式 MIPS32架构寻址方式 指令的编码与功能