關(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ù)庫會(huì)有慢查詢?nèi)罩?,其?shí)Redis中也有慢查詢?nèi)罩镜墓δ堋B樵兙褪窍到y(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(就是命令超過多長時(shí)間需要記錄一下,默認(rèn)是10 000微秒。

- 慢查詢記錄,這個(gè)默認(rèn)是記錄在redis中的一個(gè)列表里。通過slowlog-max-len,來設(shè)置列表的最大長度。
如果 slowlog-log-slower-than=0會(huì)記錄所有的命令,slowlog-log-slower-than<0不會(huì)記錄任何命令。
如果下一條命令超過了最大長度,比如我們設(shè)置的隊(duì)列長度為5,又來了一條慢查詢,那么會(huì)將隊(duì)列最先進(jìn)入的慢查詢移出,將最新的一條放入隊(duì)列,增大慢查詢設(shè)置長度可以減緩慢查詢被剔除的可能,比如線上可以設(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)前的長度
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
-
redis.clients.jedis.exceptions.JedisBusyException無法處理異常的解決方法
redis.clients.jedis.exceptions.JedisBusyException異常通常不是 Jedis客戶端直接拋出的標(biāo)準(zhǔn)異常,本文就來介紹一下異常的解決方法,感興趣的可以了解一下 2024-05-05
-
window手動(dòng)操作清理redis緩存的技巧總結(jié)
在本篇文章中小編給大家分享了關(guān)于window環(huán)境手動(dòng)操作清理redis緩存的方法和技巧,有興趣的朋友們可以跟著學(xué)習(xí)下。 2019-07-07
-
redis中的數(shù)據(jù)結(jié)構(gòu)和編碼詳解
本文主要和大家分享幾種Redis數(shù)據(jù)結(jié)構(gòu)詳解,希望文中的案例和代碼,能幫助到大家。 2020-03-03
-
解讀Redis秒殺優(yōu)化方案(阻塞隊(duì)列+基于Stream流的消息隊(duì)列)
該文章介紹了使用Redis的阻塞隊(duì)列和Stream流的消息隊(duì)列來優(yōu)化秒殺系統(tǒng)的方案,通過將秒殺流程拆分為兩條流水線,使用Redis緩存緩解數(shù)據(jù)庫壓力,并結(jié)合Lua腳本進(jìn)行原子性判斷,使用阻塞隊(duì)列和消息隊(duì)列異步處理訂單,有效提高了系統(tǒng)的并發(fā)處理能力和可用性 2025-02-02
最新評論
慢查詢記錄
我們都知道像mysql等持久化數(shù)據(jù)庫會(huì)有慢查詢?nèi)罩?,其?shí)Redis中也有慢查詢?nèi)罩镜墓δ堋B樵兙褪窍到y(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(就是命令超過多長時(shí)間需要記錄一下,默認(rèn)是10 000微秒。

- 慢查詢記錄,這個(gè)默認(rèn)是記錄在redis中的一個(gè)列表里。通過slowlog-max-len,來設(shè)置列表的最大長度。
如果 slowlog-log-slower-than=0會(huì)記錄所有的命令,slowlog-log-slower-than<0不會(huì)記錄任何命令。
如果下一條命令超過了最大長度,比如我們設(shè)置的隊(duì)列長度為5,又來了一條慢查詢,那么會(huì)將隊(duì)列最先進(jìn)入的慢查詢移出,將最新的一條放入隊(duì)列,增大慢查詢設(shè)置長度可以減緩慢查詢被剔除的可能,比如線上可以設(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)前的長度
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
redis.clients.jedis.exceptions.JedisBusyException無法處理異常的解決方法
redis.clients.jedis.exceptions.JedisBusyException異常通常不是 Jedis客戶端直接拋出的標(biāo)準(zhǔn)異常,本文就來介紹一下異常的解決方法,感興趣的可以了解一下2024-05-05
window手動(dòng)操作清理redis緩存的技巧總結(jié)
在本篇文章中小編給大家分享了關(guān)于window環(huán)境手動(dòng)操作清理redis緩存的方法和技巧,有興趣的朋友們可以跟著學(xué)習(xí)下。2019-07-07
redis中的數(shù)據(jù)結(jié)構(gòu)和編碼詳解
本文主要和大家分享幾種Redis數(shù)據(jù)結(jié)構(gòu)詳解,希望文中的案例和代碼,能幫助到大家。2020-03-03
解讀Redis秒殺優(yōu)化方案(阻塞隊(duì)列+基于Stream流的消息隊(duì)列)
該文章介紹了使用Redis的阻塞隊(duì)列和Stream流的消息隊(duì)列來優(yōu)化秒殺系統(tǒng)的方案,通過將秒殺流程拆分為兩條流水線,使用Redis緩存緩解數(shù)據(jù)庫壓力,并結(jié)合Lua腳本進(jìn)行原子性判斷,使用阻塞隊(duì)列和消息隊(duì)列異步處理訂單,有效提高了系統(tǒng)的并發(fā)處理能力和可用性2025-02-02

