關(guān)于Redis的慢查詢?nèi)罩竟δ茉斀?/h1>
更新時(shí)間:2023年07月13日 10:35:08 作者:是餛飩呀
Redis慢查詢是Redis提供的一項(xiàng)性能優(yōu)化功能,它可以記錄某個(gè)查詢語句的執(zhí)行時(shí)間、命令參數(shù)、執(zhí)行次數(shù)等信息,從而幫助運(yùn)維人員快速定位某個(gè)查詢語句的性能問題,需要的朋友可以參考下
慢查詢記錄
我們都知道像mysql等持久化數(shù)據(jù)庫(kù)會(huì)有慢查詢?nèi)罩荆鋵?shí)Redis中也有慢查詢?nèi)罩镜墓δ?。慢查詢就是系統(tǒng)在執(zhí)行命令的前后計(jì)算每條命令的執(zhí)行時(shí)間,如果超過我們預(yù)設(shè)的時(shí)間,就把記錄記下來。
一般發(fā)送一條 Redis 命令會(huì)有以下這 4 個(gè)步驟:

然而Redis慢查詢只記錄第3個(gè)步驟,所以我們一般在生產(chǎn)環(huán)境中的等待時(shí)間,會(huì)遠(yuǎn)遠(yuǎn)大于慢查詢?nèi)罩居涗浀臅r(shí)間。
慢查詢兩個(gè)配置參數(shù)
Redis中有兩個(gè)配置參數(shù)用來記錄慢查詢
- 預(yù)設(shè)閥值,配置為slowlog-log-slower-than(就是命令超過多長(zhǎng)時(shí)間需要記錄一下,默認(rèn)是10 000微秒。

- 慢查詢記錄,這個(gè)默認(rèn)是記錄在redis中的一個(gè)列表里。通過slowlog-max-len,來設(shè)置列表的最大長(zhǎng)度。
如果 slowlog-log-slower-than=0會(huì)記錄所有的命令,slowlog-log-slower-than<0不會(huì)記錄任何命令。
如果下一條命令超過了最大長(zhǎng)度,比如我們?cè)O(shè)置的隊(duì)列長(zhǎng)度為5,又來了一條慢查詢,那么會(huì)將隊(duì)列最先進(jìn)入的慢查詢移出,將最新的一條放入隊(duì)列,增大慢查詢?cè)O(shè)置長(zhǎng)度可以減緩慢查詢被剔除的可能,比如線上可以設(shè)置為1000以上。
修改配置參數(shù)
通過以下配置修改
config set slowlog-log-slower-than 2000
config set slowlog-max-len 1000
config rewrite
如果要將Redis將配置持久化到本地配置文件,需要執(zhí)行config rewrite命令。
慢查詢?nèi)罩?/h4>
(1)獲取慢查詢?nèi)罩?/p>
slowlog get [n] # n代表查詢數(shù)量,如果不寫,則為查詢?nèi)?/pre>
127.0.0.1:6379> slowlog get
1) 1) (integer) 3
2) (integer) 1678264789
3) (integer) 8
4) 1) "get"
2) "a"
可以看到有4個(gè)屬性,分別是慢查詢?nèi)罩镜臉?biāo)識(shí)id、發(fā)生時(shí)間戳、命令耗時(shí)、執(zhí)行命令和參數(shù)。
(2)獲取慢查詢?nèi)罩玖斜懋?dāng)前的長(zhǎng)度
slowlog len
127.0.0.1:6379> slowlog len
(integer) 6
(3) 慢查詢?nèi)罩局刂?/p>
slowlog reset
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) 0
到此這篇關(guān)于關(guān)于Redis的慢查詢?nèi)罩竟δ茉斀獾奈恼戮徒榻B到這了,更多相關(guān)Redis的慢查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
-
Redis+PHP實(shí)現(xiàn)用戶消息推送每天最多通知2次的功能
在開發(fā)應(yīng)用程序中,經(jīng)常需要向用戶推送消息通知,但是為了避免過多的打擾用戶,我們希望限制每天最多通知2次,本篇博文將介紹如何使用PHP和Redis實(shí)現(xiàn)這一功能,文中有詳細(xì)的代碼示例,需要的朋友可以參考下 2023-10-10
-
解決redis-cli報(bào)錯(cuò)Could not connect to Redis&
這篇文章主要介紹了解決redis-cli報(bào)錯(cuò)Could not connect to Redis at 127.0.0.1:6379: Connection refused,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教 2025-04-04
-
Redis配合SSDB實(shí)現(xiàn)持久化存儲(chǔ)代碼示例
這篇文章主要介紹了Redis配合SSDB實(shí)現(xiàn)持久化存儲(chǔ)代碼示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下 2020-11-11
-
redisson滑動(dòng)時(shí)間窗應(yīng)用場(chǎng)景解決方案
前10分鐘內(nèi)累計(jì)3次驗(yàn)證失敗后,增加圖形驗(yàn)證碼驗(yàn)證條件,前10分鐘內(nèi)累計(jì)6次驗(yàn)證失敗后,系統(tǒng)自動(dòng)鎖定該賬號(hào)15分鐘,15分鐘后自動(dòng)解鎖,本文給大家分享redisson滑動(dòng)時(shí)間窗應(yīng)用場(chǎng)景解決方案,感興趣的朋友一起看看吧 2024-01-01
-
詳解Redis中的List是如何實(shí)現(xiàn)的
List 的 Redis 中的 5 種主要數(shù)據(jù)結(jié)構(gòu)之一,它是一種序列集合,可以存儲(chǔ)一個(gè)有序的字符串列表,順序是插入的順序,本文將給大家介紹了一下Redis中的List是如何實(shí)現(xiàn)的,需要的朋友可以參考下 2024-05-05
-
redis集群主從節(jié)點(diǎn)自動(dòng)切換方式
這篇文章主要介紹了redis集群主從節(jié)點(diǎn)自動(dòng)切換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教 2024-01-01
-
一起raid數(shù)據(jù)恢復(fù)及回遷成功的案例
這篇文章主要介紹了一起raid數(shù)據(jù)恢復(fù)及回遷成功的案例,需要的朋友可以參考下 2017-04-04
最新評(píng)論
慢查詢記錄
我們都知道像mysql等持久化數(shù)據(jù)庫(kù)會(huì)有慢查詢?nèi)罩荆鋵?shí)Redis中也有慢查詢?nèi)罩镜墓δ?。慢查詢就是系統(tǒng)在執(zhí)行命令的前后計(jì)算每條命令的執(zhí)行時(shí)間,如果超過我們預(yù)設(shè)的時(shí)間,就把記錄記下來。
一般發(fā)送一條 Redis 命令會(huì)有以下這 4 個(gè)步驟:
然而Redis慢查詢只記錄第3個(gè)步驟,所以我們一般在生產(chǎn)環(huán)境中的等待時(shí)間,會(huì)遠(yuǎn)遠(yuǎn)大于慢查詢?nèi)罩居涗浀臅r(shí)間。
慢查詢兩個(gè)配置參數(shù)
Redis中有兩個(gè)配置參數(shù)用來記錄慢查詢
- 預(yù)設(shè)閥值,配置為slowlog-log-slower-than(就是命令超過多長(zhǎng)時(shí)間需要記錄一下,默認(rèn)是10 000微秒。
- 慢查詢記錄,這個(gè)默認(rèn)是記錄在redis中的一個(gè)列表里。通過slowlog-max-len,來設(shè)置列表的最大長(zhǎng)度。
如果 slowlog-log-slower-than=0會(huì)記錄所有的命令,slowlog-log-slower-than<0不會(huì)記錄任何命令。
如果下一條命令超過了最大長(zhǎng)度,比如我們?cè)O(shè)置的隊(duì)列長(zhǎng)度為5,又來了一條慢查詢,那么會(huì)將隊(duì)列最先進(jìn)入的慢查詢移出,將最新的一條放入隊(duì)列,增大慢查詢?cè)O(shè)置長(zhǎng)度可以減緩慢查詢被剔除的可能,比如線上可以設(shè)置為1000以上。
修改配置參數(shù)
通過以下配置修改
config set slowlog-log-slower-than 2000 config set slowlog-max-len 1000 config rewrite
如果要將Redis將配置持久化到本地配置文件,需要執(zhí)行config rewrite命令。
慢查詢?nèi)罩?/h4>
(1)獲取慢查詢?nèi)罩?/p>
slowlog get [n] # n代表查詢數(shù)量,如果不寫,則為查詢?nèi)?/pre>
127.0.0.1:6379> slowlog get 1) 1) (integer) 3 2) (integer) 1678264789 3) (integer) 8 4) 1) "get" 2) "a"
可以看到有4個(gè)屬性,分別是慢查詢?nèi)罩镜臉?biāo)識(shí)id、發(fā)生時(shí)間戳、命令耗時(shí)、執(zhí)行命令和參數(shù)。
(2)獲取慢查詢?nèi)罩玖斜懋?dāng)前的長(zhǎng)度
slowlog len
127.0.0.1:6379> slowlog len (integer) 6
(3) 慢查詢?nèi)罩局刂?/p>
slowlog reset
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) 0
到此這篇關(guān)于關(guān)于Redis的慢查詢?nèi)罩竟δ茉斀獾奈恼戮徒榻B到這了,更多相關(guān)Redis的慢查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis+PHP實(shí)現(xiàn)用戶消息推送每天最多通知2次的功能
在開發(fā)應(yīng)用程序中,經(jīng)常需要向用戶推送消息通知,但是為了避免過多的打擾用戶,我們希望限制每天最多通知2次,本篇博文將介紹如何使用PHP和Redis實(shí)現(xiàn)這一功能,文中有詳細(xì)的代碼示例,需要的朋友可以參考下2023-10-10解決redis-cli報(bào)錯(cuò)Could not connect to Redis&
這篇文章主要介紹了解決redis-cli報(bào)錯(cuò)Could not connect to Redis at 127.0.0.1:6379: Connection refused,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04Redis配合SSDB實(shí)現(xiàn)持久化存儲(chǔ)代碼示例
這篇文章主要介紹了Redis配合SSDB實(shí)現(xiàn)持久化存儲(chǔ)代碼示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11redisson滑動(dòng)時(shí)間窗應(yīng)用場(chǎng)景解決方案
前10分鐘內(nèi)累計(jì)3次驗(yàn)證失敗后,增加圖形驗(yàn)證碼驗(yàn)證條件,前10分鐘內(nèi)累計(jì)6次驗(yàn)證失敗后,系統(tǒng)自動(dòng)鎖定該賬號(hào)15分鐘,15分鐘后自動(dòng)解鎖,本文給大家分享redisson滑動(dòng)時(shí)間窗應(yīng)用場(chǎng)景解決方案,感興趣的朋友一起看看吧2024-01-01詳解Redis中的List是如何實(shí)現(xiàn)的
List 的 Redis 中的 5 種主要數(shù)據(jù)結(jié)構(gòu)之一,它是一種序列集合,可以存儲(chǔ)一個(gè)有序的字符串列表,順序是插入的順序,本文將給大家介紹了一下Redis中的List是如何實(shí)現(xiàn)的,需要的朋友可以參考下2024-05-05redis集群主從節(jié)點(diǎn)自動(dòng)切換方式
這篇文章主要介紹了redis集群主從節(jié)點(diǎn)自動(dòng)切換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01一起raid數(shù)據(jù)恢復(fù)及回遷成功的案例
這篇文章主要介紹了一起raid數(shù)據(jù)恢復(fù)及回遷成功的案例,需要的朋友可以參考下2017-04-04