Java每隔5秒查找redis_面试突击 004 | 如何排查 Redis 中的慢查询?视频实战篇-程序员宅基地

技术标签: Java每隔5秒查找redis  

1 面试题

如何排查 Redis 中的慢查询?

2 涉及相关问题Redis 中有没有慢查询排查工具或者相关排查手段?

慢查询日志都包含哪些信息?

慢查询的相关配置项有哪些?默认值是啥?应该如何设置?

如果慢查询的队列满了?会怎样?

在代码中如何实现 Redis 的慢查询?

3 答案

首先来说 Redis 中有慢查询日志,是可以实现 Redis 慢操作排查的。

慢日志包含的内容有:慢查询的具体执行命令;

慢查询的执行时间;

慢查询的执行时长。

慢查询日志内容如下:127.0.0.1:6379> slowlog get #慢日志查询

1) 1) (integer) 2 #慢日志下标

2) (integer) 1581994139 #执行时间

3) (integer) 5 #花费时间 (单位微秒)

4) 1) "set" #执行的具体命令

2) "lang"

3) "java"

5) "127.0.0.1:47068"

6) ""

2) 1) (integer) 1

2) (integer) 1581994131

3) (integer) 6

4) 1) "set"

2) "msg"

3) "xiaoming"

5) "127.0.0.1:47068"

6) ""

3) 1) (integer) 0

2) (integer) 1581994093

3) (integer) 5

4) 1) "config"

2) "set"

3) "slowlog-log-slower-than"

4) "0"

5) "127.0.0.1:47068"

6) ""

慢日志模拟添加,详见视频 。

慢日志查询相关的配置信息有两个:slowlog-log-slower-than :用于设置慢查询的评定时间,也就是说超过此配置项的命令,将会被当成慢操作记录在慢查询日志中,它执行单位是微秒 (1 秒等于 1000000 微秒);

slowlog-max-len :用来配置慢查询日志的最大记录数。

默认值如下:127.0.0.1:6379> config get slowlog-log-slower-than #慢查询判断时间

1) "slowlog-log-slower-than"

2) "10000"

127.0.0.1:6379> config get slowlog-max-len #慢查询最大记录条数

1) "slowlog-max-len"

2) "128"

可以看出慢查询的临界值是 10000 微秒,默认保存 128 条慢查询记录。

4 代码实战

本文我们使用 Java 来实现慢查询日志的操作,代码如下:import redis.clients.jedis.Jedis;

import redis.clients.jedis.util.Slowlog;

import utils.JedisUtils;

import java.util.List;

/**

* 慢查询

*/

public class SlowExample{

public static void main(String[] args){

Jedis jedis = JedisUtils.getJedis();

// 插入慢查询(因为 slowlog-log-slower-than 设置为 0,所有命令都符合慢操作)

jedis.set("db", "java");

jedis.set("lang", "java");

// 慢查询记录的条数

long logLen = jedis.slowlogLen();

// 所有慢查询

List list = jedis.slowlogGet();

// 循环打印

for (Slowlog item : list) {

System.out.println("慢查询命令:"+ item.getArgs()+

" 执行了:"+item.getExecutionTime()+" 微秒");

}

// 清空慢查询日志

jedis.slowlogReset();

}

}

以上代码执行结果如下:慢查询命令:[SLOWLOG, len] 执行了:1 微秒

慢查询命令:[SET, lang, java] 执行了:2 微秒

慢查询命令:[SET, db, java] 执行了:4 微秒

慢查询命令:[SLOWLOG, reset] 执行了:155 微秒

5 小结

本文我们介绍了慢查询相关的两个重要参数 slowlog-log-slower-than (用于设置慢查询的评定时间) 和 slowlog-max-len 用来配置慢查询日志的最大记录数,然后通过修改 config set slowlog-log-slower-than 0 把所有操作都记录在慢日志进行相关测试。我们可以使用 slowlog get [n] 查询慢操作日志,使用 slowlog reset 清空慢查询日志。最后给大家一个建议,可以定期检查慢查询日志,及时发现和改进 Redis 运行中不合理的操作。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_32101285/article/details/114549235

智能推荐

Ubuntu下使用pjsip点对点通话_pjsua2 点对点sip电话 二次开发-程序员宅基地

文章浏览阅读2.5k次。Ubuntu AUbuntu Bubuntu A IP:192.168.43.49ubuntu B IP:192.168.43.11方法一:使用pjsua1. 进入目录pjsip-apps/binubuntu A: ./pjsua-x86_64-unknown-linux-gnuubuntu B发起呼叫: ./pjsua-x86_64-unkno_pjsua2 点对点sip电话 二次开发

嵌入式系统开发学习_嵌入式系统需要开发版配合,本课程将使用何种开发版?搜寻开发版图形标出重要名称?-程序员宅基地

文章浏览阅读2.4k次。嵌入式系统开发学习:(载自:http://blog.csdn.net/leoocn/archive/2008/02/26/2121703.aspx) 随着现代社会信息化进程的加快,嵌入式系统被广泛的地应用于军事、家用、工业、商业、办公、医疗等社会各个方面,表现出很强的投资价值。从国际范围来看,作为数字化电子信息产品核心的嵌入式系统目前其硬件和软件开发工具市场已经突破2000亿美元,嵌入式系统带来的全球工业年产值更是达到了一万亿美元,随着全_嵌入式系统需要开发版配合,本课程将使用何种开发版?搜寻开发版图形标出重要名称?

flask实战-用户登录注册系统+密码动态加密(5-实战篇)_登陆密码加密是动态的 如何做登录器-程序员宅基地

文章浏览阅读1.7k次。该篇主要介绍使用flask如何实现用户注册登录功能,使用SQLAlchemy操作数据库,密码进行动态加密解密验证,以及基本登录逻辑和表单提交,项目中用到的东西前几篇都有介绍,如有不足请留言指出谢谢1. 项目结构2. HTML页面登录页面 login.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>登录</title._登陆密码加密是动态的 如何做登录器

android:launchMode、Intent.FLAG_ACTIVITY_NEW_TASK、android:taskAffinity和近期任务列表关系-程序员宅基地

文章浏览阅读250次。本文总结了android:launchMode、Intent.FLAG_ACTIVITY_NEW_TASK、android:taskAffinity和近期任务列表RecentsActivity关系实验辅助工具:通过adb shell dumpsys activity 命令观察 activity所属task栈的id(在输出中搜索Running activities,带#号的就是该activit..._android taskaffinity最近任务

百度竞价排名关键字管理技巧-程序员宅基地

文章浏览阅读191次。【标题】百度竞价排名关键字管理技巧【内容】1、为大量关键字注册不同的网页url比只注册首页url效果更好虽然,您可以为一个网页注册不限数量的不同关键字,但是,据我们所知: 如果您为不同的关键字注册不同的网页,让网页url指向跟该关键字相关的产品或服务网页,那么效果比全部关键字 都指向网站首页效果更好。比如,您的网站有“域名注册”的服务,那么建议您把关键字“域名注册”相应的url设定为指向提...

java中弹出窗口的默认大小,java – 当浏览器窗口调整大小时,GWT调整大小和居中弹出窗口...-程序员宅基地

文章浏览阅读206次。我需要在浏览器窗口调整大小时调整大小.我在我的弹出构造函数中添加了ResizeHandler,但在几个浏览器调整大小center()函数后创建新的弹出窗口,而不是居中当前.这里有一些我已经尝试过的代码.请告诉我如何解决这个问题或建议一些解决方案.public BigPopup() {...final BigPopup self = this;Window.addResizeHandler(new ..._java实现调用默认浏览器打开网址并设置桌面大小

随便推点

三、常见设计模式_09(笔记)_@sneakythrows是代理模式吗-程序员宅基地

文章浏览阅读65次。Java常见设计模式总结_@sneakythrows是代理模式吗

JAVA练习题--小明可买什么_java中用switch购买铅笔橡皮-程序员宅基地

文章浏览阅读415次。javaSwitch条件语句练习题_java中用switch购买铅笔橡皮

java计算机毕业设计网上书店的设计与实现源码+系统+数据库+lw文档_网上书店的设计与实现数据库-程序员宅基地

文章浏览阅读104次。java计算机毕业设计网上书店的设计与实现源码+系统+数据库+lw文档。前端技术:Layui、HTML、CSS、JS、JQuery等技术。ssm基于uniapp+Vue框架的《露营》App开发与实现。JSP物流中心仓储信息管理系统的设计与实现sqlserver。jsp基于JSP的天津城建大学计算机学院校友录管理系统。ssm基于Android平台的球鞋销售系统。ssm基于H的新冠防疫宣传网站的设计与实现。ssm基于Java的摄影网上预约管理系统。ssm基于SSM框架的学生协会管理系统。_网上书店的设计与实现数据库

YOLO目标检测:叉车检测数据集_叉车数据集-程序员宅基地

文章浏览阅读496次,点赞10次,收藏10次。叉车检测数据集,3000多张图像,标注完整,叉车一类,未应用数据增强。_叉车数据集

百套精选安卓(Android)毕业设计大全:含论文、大作业及原创作品(Android Studio专用),配套完整源码与详尽论文,助力学术成果卓越展现_android studio 毕业设计网站-程序员宅基地

文章浏览阅读521次,点赞8次,收藏9次。我们专注于软件开发工程领域,熟练掌握多种开发技术,Android APP和微信小程序的开发。添+My number is one--zero-three-two-three-seven-one-two-one。的咖啡销售管理系统的设计与实现 ( 原材料交易 )的流浪猫狗求助系统的设计与实现。小说阅读系统的设计与实现。酒店管理系统的设计与实现。宠物寄养系统的设计与实现。校园疫情防控的设计与实现。的医院人力资源管理系统。的大学生实习管理系统。的高校实验室管理系统。网上书店电子商务系统。_android studio 毕业设计网站

Win10 2004/20H2/21H1/21H1版如何取消开机登录密码 | 解决运行netlpwiz没有取消密码的复选框_netplwiz没有取消开机密码-程序员宅基地

文章浏览阅读3.1w次,点赞18次,收藏28次。文章目录1. 按2. 解决方案一:重新显示“要使用本计算机,用户必须输入用户名和密码”项3. 解决方案二:把用户的密码完全删除掉1. 按有些用户在安装win10 2004系统之后(如:20H2),都喜欢给电脑设置开机密码,但是使用一段时间之后,可能想要取消开机登录密码,但却发现Windows10 2004中运行netplwiz之后却发现没有取消输入密码的复选框。2. 解决方案一:重新显示“要使用本计算机,用户必须输入用户名和密码”项按下WIN+R打开运行,输入regedit然后回车以打开注册_netplwiz没有取消开机密码

推荐文章

热门文章

相关标签