日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

redis慢查詢?nèi)罩镜脑L問和管理方式_Redis

作者:Beucejiang ? 更新時(shí)間: 2023-01-26 編程語言

redis慢查詢?nèi)罩镜脑L問和管理

通過一組命令來實(shí)現(xiàn)對慢查詢?nèi)罩镜脑L問和管理

(1)獲取慢查詢?nèi)罩?/h3>

命令:slowlog get

127.0.0.1:6379> slowlog get
1) 1) (integer) 1
? ?2) (integer) 1513709400
? ?3) (integer) 11
? ?4) 1) "slowlog"
? ? ? 2) "get"
2) 1) (integer) 0
? ?2) (integer) 1513709398
? ?3) (integer) 4
? ?4) 1) "config"
? ? ? 2) "set"
? ? ? 3) "slowlog-log-slower-than"
? ? ? 4) "2"

(2)獲取慢查詢?nèi)罩玖斜懋?dāng)前的長度

命令:slowlog len

127.0.0.1:6379> slowlog len
(integer) 2

(3)慢查詢?nèi)罩局刂?/h3>

命令:slowlog reset

實(shí)際是對慢查詢?nèi)罩玖斜碜銮謇聿僮鳌?/p>

127.0.0.1:6379> slowlog len
(integer) 6
127.0.0.1:6379> slowlog reset
OK
127.0.0.1:6379> slowlog len
(integer) 1
#為什么還有1個,因?yàn)殚撝翟O(shè)的比較小,slowlog reset就屬于慢查詢

注意事項(xiàng)

慢查詢功能可以有效的幫助我們找到Redis可能存在的瓶頸,但在實(shí)際使用過程中要注意以下幾點(diǎn):

(1)slowlog-max-len配置建議:線上建議調(diào)大慢查詢列表,記錄慢查詢時(shí)Redis會對長命令做截?cái)嗖僮鳎⒉粫加么罅績?nèi)存。

增大慢查詢列表可以減緩慢查詢被剔除的可能。

(2)slowlog-log-slower-than配置建議:默認(rèn)值超過10毫秒判定為慢查詢,需要根據(jù)Redis并發(fā)量調(diào)整該值。

由于Redis采用單線程響應(yīng)命令,對于高流量的場景,如果命令執(zhí)行時(shí)間在1毫秒以上,那么Redis最多可以支撐OPS不到1000,因此對于高OPS的場景的Redis建議設(shè)置1毫秒。

(3)慢查詢只記錄命令執(zhí)行時(shí)間,并不包括命令排隊(duì)和網(wǎng)絡(luò)傳輸時(shí)間。因此客戶端執(zhí)行命令的時(shí)間會大于命令實(shí)際執(zhí)行的時(shí)間。

因?yàn)槊顖?zhí)行排隊(duì)機(jī)制,慢查詢會導(dǎo)致其他命令級聯(lián)阻塞,因此當(dāng)客戶端出現(xiàn)請求超時(shí),

需要檢查該時(shí)間點(diǎn)是否有對應(yīng)的慢查詢,從而分析出是否為慢查詢導(dǎo)致的命令級聯(lián)阻塞。

(4)由于慢查詢?nèi)罩臼且粋€先進(jìn)先出的隊(duì)列,也就是說如果慢查詢比較多的情況下,可能會丟失部分慢查詢命令,

為了防止這種情況發(fā)生,可以定期執(zhí)行slowlog get命令將慢查詢?nèi)罩境志没狡渌鎯χ校ɡ纾琈ySQL),

然后可以制作出可視化界面進(jìn)行查詢。

Redis慢查詢總結(jié)

慢查詢分析

1、什么叫慢查詢?

類似于mysql中的慢查詢語句,當(dāng)查詢語句的執(zhí)行時(shí)間超過設(shè)置的時(shí)間閾值就是慢查詢語句,會放入慢查詢?nèi)罩局小?/p>

redis中慢查詢只統(tǒng)計(jì)命令生命周期中執(zhí)行命令的時(shí)間,所有沒有慢查詢并不代表客戶端沒有超時(shí)的問題。(客戶端命令生命周期:發(fā)送命令,命令排隊(duì),命令執(zhí)行,命令返回)。

2、慢查詢的配置參數(shù)

redis提供了slowlog-log-slower-than和slowlog-max-len配置慢查詢。

1)使用slowlog-log-slower-than來設(shè)置執(zhí)行時(shí)間的閾值,默認(rèn)是 10000微妙;

備注:slowlog-log-slower-than=0記錄所有的命令,slowlog-log-slower-than<0對任何命令都不進(jìn)行記錄。

2)slowlog-max-len只是說明了慢查詢?nèi)罩咀疃啻鎯Χ嗌贄l,實(shí)際上慢查詢命令存儲在列表上,slowlog-max-len就是這個列表的最大長度。當(dāng)命令超過最大列表長度,按照先進(jìn)先出算法,最早進(jìn)入對了的移除。

配置方式:可以通過配置文件配置:

也可以通過命令行客戶端發(fā)送 config set命令動態(tài)修改:?

config set slowlog-log-slower-than 20000

config set slowlog-max-len 1000

config rewrite(用來把配置的值持久化到本地配置文件中,啟動時(shí)需指定配置文件,否則持久化失敗)

3、慢查詢?nèi)罩镜脑L問和管理

  • slowlog get獲取的日志分4個屬性:id,發(fā)生時(shí)間戳,執(zhí)行時(shí)間,執(zhí)行命令+參數(shù)
  • slowlog reset 用于重置慢查詢?nèi)罩颈4媪斜恚褪乔闆r列表中的數(shù)據(jù)。

注意事項(xiàng):由于慢查詢是一個先進(jìn)先出的隊(duì)列,可能會丟失部分慢查詢命令,因此線上最好配置在1000以上,同時(shí)可以定期執(zhí)行slowlog get 命令將慢查詢?nèi)罩境志没狡渌鎯χ校ū热鏜ysql)。

總結(jié)

原文鏈接:https://blog.csdn.net/Beucejiang/article/details/122281769

欄目分類
最近更新