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

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

- 慢查詢記錄,這個默認是記錄在redis中的一個列表里。通過slowlog-max-len,來設(shè)置列表的最大長度。
如果 slowlog-log-slower-than=0會記錄所有的命令,slowlog-log-slower-than<0不會記錄任何命令。
如果下一條命令超過了最大長度,比如我們設(shè)置的隊列長度為5,又來了一條慢查詢,那么會將隊列最先進入的慢查詢移出,將最新的一條放入隊列,增大慢查詢設(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個屬性,分別是慢查詢?nèi)罩镜臉俗Rid、發(fā)生時間戳、命令耗時、執(zhí)行命令和參數(shù)。
(2)獲取慢查詢?nèi)罩玖斜懋斍暗拈L度
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+PHP實現(xiàn)用戶消息推送每天最多通知2次的功能
在開發(fā)應(yīng)用程序中,經(jīng)常需要向用戶推送消息通知,但是為了避免過多的打擾用戶,我們希望限制每天最多通知2次,本篇博文將介紹如何使用PHP和Redis實現(xiàn)這一功能,文中有詳細的代碼示例,需要的朋友可以參考下 2023-10-10
-
解決redis-cli報錯Could not connect to Redis&
這篇文章主要介紹了解決redis-cli報錯Could not connect to Redis at 127.0.0.1:6379: Connection refused,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教 2025-04-04
-
一起raid數(shù)據(jù)恢復(fù)及回遷成功的案例
這篇文章主要介紹了一起raid數(shù)據(jù)恢復(fù)及回遷成功的案例,需要的朋友可以參考下 2017-04-04
最新評論
慢查詢記錄
我們都知道像mysql等持久化數(shù)據(jù)庫會有慢查詢?nèi)罩?,其實Redis中也有慢查詢?nèi)罩镜墓δ?。慢查詢就是系統(tǒng)在執(zhí)行命令的前后計算每條命令的執(zhí)行時間,如果超過我們預(yù)設(shè)的時間,就把記錄記下來。
一般發(fā)送一條 Redis 命令會有以下這 4 個步驟:
然而Redis慢查詢只記錄第3個步驟,所以我們一般在生產(chǎn)環(huán)境中的等待時間,會遠遠大于慢查詢?nèi)罩居涗浀臅r間。
慢查詢兩個配置參數(shù)
Redis中有兩個配置參數(shù)用來記錄慢查詢
- 預(yù)設(shè)閥值,配置為slowlog-log-slower-than(就是命令超過多長時間需要記錄一下,默認是10 000微秒。
- 慢查詢記錄,這個默認是記錄在redis中的一個列表里。通過slowlog-max-len,來設(shè)置列表的最大長度。
如果 slowlog-log-slower-than=0會記錄所有的命令,slowlog-log-slower-than<0不會記錄任何命令。
如果下一條命令超過了最大長度,比如我們設(shè)置的隊列長度為5,又來了一條慢查詢,那么會將隊列最先進入的慢查詢移出,將最新的一條放入隊列,增大慢查詢設(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個屬性,分別是慢查詢?nèi)罩镜臉俗Rid、發(fā)生時間戳、命令耗時、執(zhí)行命令和參數(shù)。
(2)獲取慢查詢?nèi)罩玖斜懋斍暗拈L度
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+PHP實現(xiàn)用戶消息推送每天最多通知2次的功能
在開發(fā)應(yīng)用程序中,經(jīng)常需要向用戶推送消息通知,但是為了避免過多的打擾用戶,我們希望限制每天最多通知2次,本篇博文將介紹如何使用PHP和Redis實現(xiàn)這一功能,文中有詳細的代碼示例,需要的朋友可以參考下2023-10-10解決redis-cli報錯Could not connect to Redis&
這篇文章主要介紹了解決redis-cli報錯Could not connect to Redis at 127.0.0.1:6379: Connection refused,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04一起raid數(shù)據(jù)恢復(fù)及回遷成功的案例
這篇文章主要介紹了一起raid數(shù)據(jù)恢復(fù)及回遷成功的案例,需要的朋友可以參考下2017-04-04