问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何获取redis的活动线程数量 java

发布网友 发布时间:2022-04-07 14:24

我来回答

2个回答

懂视网 时间:2022-04-07 18:45

推荐:《redis教程》

什么是慢查询?

慢查询,顾名思义就是比较慢的查询,但是究竟是哪里慢呢?首先,我们了解一下Redis命令执行的整个过程:

  1. 发送命令
  2. 命令排队
  3. 命令执行
  4. 返回结果

在慢查询的定义中,统计比较慢的时间段指的是命令执行这个步骤。没有慢查询,并不表示客户端没有超时问题,有可能网络传输有延迟,也有可能排队的命令比较多。

因为Redis中命令执行的排队机制,慢查询会导致其他命令的级联阻塞,所以当客户端出现请求超时的时候,需要检查该时间点是否有慢查询,从而分析出由于慢查询导致的命令级联阻塞。

什么是慢查询日志?

慢查询日志是Redis服务端在命令执行前后计算每条命令的执行时长,当超过某个阈值是记录下来的日志。日志中记录了慢查询发生的时间,还有执行时长、具体什么命令等信息,它可以用来帮助开发和运维人员定位系统中存在的慢查询。

如何获取慢查询日志?

可以使用slowlog get命令获取慢查询日志,在slowlog get后面还可以加一个数字,用于指定获取慢查询日志的条数,比如,获取3条慢查询日志:

> slowlog get 3
1) 1) (integer) 6107
 2) (integer) 1616398930
 3) (integer) 3109
 4) 1) "config"
 2) "rewrite"
2) 1) (integer) 6106
 2) (integer) 1613701788
 3) (integer) 36004
 4) 1) "flushall"
3) 1) (integer) 6105
 2) (integer) 1608722338
 3) (integer) 20449
 4) 1) "scan"
 2) "0"
 3) "MATCH"
 4) "*comment*"
 5) "COUNT"
 6) "10000"

从上面的例子中,可以看出每一条慢查询日志都有4个属性组成:

  1. 唯一标识ID
  2. 命令执行的时间戳
  3. 命令执行时长
  4. 执行的命名和参数

如何获取慢查询日志的长度?

可以使用slowlog len命令获取慢查询日志的长度,比如:

> slowlog len
(integer) 121

在上例中,当前Redis中有121条慢查询日志。

如何清理慢查询日志?

可以使用slowlog reset命令清理慢查询日志,比如:

> slowlog len
(integer) 121
> slowlog reset
OK
> slowlog len
(integer) 0

怎么配置慢查询的参数?

正如上面提到的,慢查询需要如下两个配置:

  1. 命令执行时长的指定阈值。
  2. 存放慢查询日志的条数。

Redis对应提供了两个参数:slowlog-log-slower-than和slowlog-max-len,接下来我们详细介绍一下这两个参数。

slowlog-log-slower-than

slowlog-log-slower-than的作用是指定命令执行时长的阈值,执行命令的时长超过这个阈值时就会被记录下来。它的单位是微秒(1秒 = 1000毫秒 = 1000000微秒),默认是10000微秒。如果把slowlog-log-slower-than设置为0,将会记录所有命令到日志中。如果把slowlog-log-slower-than设置小于0,将会不记录任何命令到日志中。

在实际的生产环境中,需要根据Redis并发量来调整该配置。因为Redis采用单线程响应命令,如果命令执行时间在1000微秒以上,那么Redis最多可支撑OPS不到1000,所以对于高并发场景的Redis建议设置为1000微秒。

slowlog-max-len

slowlog-max-len的作用是指定慢查询日志最多存储的条数。实际上,Redis使用了一个列表存放慢查询日志,slowlog-max-len就是这个列表的最大长度。当一个新的命令满足满足慢查询条件时,被插入这个列表中。当慢查询日志列表已经达到最大长度时,最早插入的那条命令将被从列表中移出。比如,slowlog-max-len被设置为10,当有第11条命令插入时,在列表中的第1条命令先被移出,然后再把第11条命令放入列表。

记录慢查询是Redis会对长命令进行截断,不会大量占用大量内存。在实际的生产环境中,为了减缓慢查询被移出的可能和更方便地定位慢查询,建议将慢查询日志的长度调整的大一些。比如可以设置为1000以上。

如何进行配置

在Redis中有两个修改配置的方法:

  1. 修改Redis配置文件。比如,把slowlog-log-slower-than设置为1000,slowlog-max-len设置为1200:
slowlog-log-slower-than 1000
slowlog-max-len 1200
  1. 使用config set命令动态修改。比如,还是把slowlog-log-slower-than设置为1000,slowlog-max-len设置为1200:
> config set slowlog-log-slower-than 1000
OK
> config set slowlog-max-len 1200
OK
> config rewrite
OK

如果要Redis把配置持久化到本地配置文件,需要执行config rewrite命令。

总结

慢查询指的是命令执行时长比较长的查询。通过slowlog get命令获取慢查询日志;通过slowlog len命令获取慢查询日志的长度;通过slowlog reset命令清理慢查询日志。通过slowlog-log-slower-than配置命令执行时长的阈值;通过slowlog-max-len配置慢查询日志最多存储的条数

热心网友 时间:2022-04-07 15:53

(1). 网络原因:比如是否存在跨机房、网络割接等等。

(2). 慢查询,因为redis是单线程,如果有慢查询的话,会阻塞住之后的操作。
(3). value值过大?比如value几十兆,当然这种情况比较少,其实也可以看做是慢查询的一种
(4). aof重写/rdb fork发生?瞬间会堵一下Redis服务器。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 美萍会员管理软件的奇怪问题~~求高手支招 电脑开机后,桌面上无图标,无法运行程序,怎么办? 我是健身房的,美萍会员管理系统为什么打不开,高人指点一下 美萍软件一重启电脑就不能用了. 为什么我的美萍会员管理系统标准版V90安装后双击没有反应 我理发店装的美萍美发管理软件、今天电脑崩溃了。无奈做了次程序。开机后发现客户资料都没有了。用软件把 会员管理软件全部不能用,都不能打开 美萍软件怎么不管用 酸奶的制作工艺是怎样的? 迷你世界怎么不用手才能把开关关住 opaicn燃气灶电池几号 win8.1(类似于win8吧)一段时间不操作,会自动锁屏,但是我正在播放的音乐随着锁屏也停止了! 美萍会员管理软件安装后一打开就弹出一个对话框,提示“未知...-04:45 opaicn燃气灶周口专卖点地址? 苹果电脑QQ音乐锁屏后只能放一首歌,完了就停了是什么原因? - 信息提示 交管12121交的罚款, 美萍会员管理软件客户端上不去提示访问用户名无效或域名错误 交管12121把驾驶证扣掉14分怎么办呢? 美萍会员管理软件安装后一打开就弹出一个对话框,提示“未知”,点确定之后无法进入软件。 打开电脑桌面上什么图标都没有了桌面上出现一个框框坚写着无法启动此程序,因? 拍电影时一般常用的技巧有哪些? 电脑启动后桌面图标都没有了 也不能做任何操作怎么解决? 电影拍摄技巧中,一直重复一个镜头叫什么。 有人知道电脑中 计算器 的快捷键是什么吗? 电脑开机后不显示桌面,并且打不开程序 电影的拍摄技巧有哪些? 不同类型的电影在拍摄的时候会有什么技巧 电影都有哪些拍摄技巧,例如蒙太奇等……急求! 玩CF用多少分辨率好?? 银行车贷时抵押在银行都有什么证件? 计算器上的键盘包括哪些 微电影拍摄技巧,谁分享下 姚琛的随手拍满满的电影质感,摄影都需要什么样的技巧? 拍摄的电影拍摄技巧 求张艺谋电影拍摄手法及技巧!! 抖音老号怎么重新定位标签- 问一问 阳光i保终身重疾险和阳光随e保重疾险哪个好 “懂得自然懂,不懂不要问”这句话什么意思? 学会放下,懂得释然是什么意思