Redis慢查詢(xún)?nèi)罩九c監(jiān)視器問(wèn)題
我們都知道MySQL有慢查詢(xún)?nèi)罩?/p>
Redis也有慢查詢(xún)?nèi)罩?,可用于監(jiān)視和優(yōu)化查詢(xún)
1、慢查詢(xún)?cè)O(shè)置
在redis.conf中可以配置和慢查詢(xún)?nèi)罩鞠嚓P(guān)的選項(xiàng):
#執(zhí)行時(shí)間超過(guò)多少微秒的命令請(qǐng)求會(huì)被記錄到日志上 0 :全記錄 <0 不記錄 slowlog-log-slower-than 10000 #slowlog-max-len 存儲(chǔ)慢查詢(xún)?nèi)罩緱l數(shù) slowlog-max-len 128
Redis使用列表存儲(chǔ)慢查詢(xún)?nèi)罩荆捎藐?duì)列方式(FIFO)
config set的方式可以臨時(shí)設(shè)置,redis重啟后就無(wú)效config set slowlog-log-slower-than微秒config set slowlog-max-len條數(shù)
查看日志:slowlog get [n]
127.0.0.1:6379> config set slowlog-log-slower-than 0
OK
127.0.0.1:6379> config set slowlog-max-len 2
OK
127.0.0.1:6379> set name:001 zhaoyun
OK
127.0.0.1:6379> set name:002 zhangfei
OK
127.0.0.1:6379> get name:002
"zhangfei"
127.0.0.1:6379> slowlog get
1) 1) (integer) 7 # 日志的唯一標(biāo)識(shí)符(uid)
2) (integer) 1589774302 # 命令執(zhí)行時(shí)的UNIX時(shí)間戳
3) (integer) 65 # 命令執(zhí)行的時(shí)長(zhǎng)(微秒)
4) 1) "get" # 執(zhí)行命令及參數(shù)
2) "name:002"
5) "127.0.0.1:37277"
6) ""
2) 1) (integer) 6
2) (integer) 1589774281
3) (integer) 7
4) 1) "set"
2) "name:002"
3) "zhangfei"
5) "127.0.0.1:37277"
6) ""
# set和get都記錄,第一條被移除了。2、慢查詢(xún)定位&處理
使用slowlog get 可以獲得執(zhí)行較慢的redis命令,針對(duì)該命令可以進(jìn)行優(yōu)化:
- 盡量使用短的key,對(duì)于value有些也可精簡(jiǎn),能使用int就int。
- 避免使用keys *、hgetall等全量操作。
- 減少大key的存取,打散為小key 100K以上
- 將rdb改為aof模式
rdb fork 子進(jìn)程 數(shù)據(jù)量過(guò)大 主進(jìn)程阻塞 redis性能大幅下降
關(guān)閉持久化,(適合于數(shù)據(jù)量較小,有固定數(shù)據(jù)源)
- 想要一次添加多條數(shù)據(jù)的時(shí)候可以使用管道
- 盡可能地使用哈希存儲(chǔ)
- 盡量限制下redis使用的內(nèi)存大小,這樣可以避免redis使用swap分區(qū)或者出現(xiàn)OOM錯(cuò)誤
內(nèi)存與硬盤(pán)的swap
3、監(jiān)視器
Redis客戶(hù)端通過(guò)執(zhí)行MONITOR命令可以將自己變?yōu)橐粋€(gè)監(jiān)視器,實(shí)時(shí)地接受并打印出服務(wù)器當(dāng)前處理的命令請(qǐng)求的相關(guān)信息。
此時(shí),當(dāng)其他客戶(hù)端向服務(wù)器發(fā)送一條命令請(qǐng)求時(shí),服務(wù)器除了會(huì)處理這條命令請(qǐng)求之外,還會(huì)將這條命令請(qǐng)求的信息發(fā)送給所有監(jiān)視器。

Redis客戶(hù)端1
127.0.0.1:6379> monitor OK 1589706136.030138 [0 127.0.0.1:42907] "COMMAND" 1589706145.763523 [0 127.0.0.1:42907] "set" "name:10" "zhaoyun" 1589706163.756312 [0 127.0.0.1:42907] "get" "name:10"
Redis客戶(hù)端2
127.0.0.1:6379> 127.0.0.1:6379> set name:10 zhaoyun OK 127.0.0.1:6379> get name:10 "zhaoyun"
4、Redis監(jiān)控平臺(tái)
grafana、prometheus以及redis_exporter。
Grafana 是一個(gè)開(kāi)箱即用的可視化工具,具有功能齊全的度量?jī)x表盤(pán)和圖形編輯器,有靈活豐富的圖形化選項(xiàng),可以混合多種風(fēng)格,支持多個(gè)數(shù)據(jù)源特點(diǎn)。
Prometheus是一個(gè)開(kāi)源的服務(wù)監(jiān)控系統(tǒng),它通過(guò)HTTP協(xié)議從遠(yuǎn)程的機(jī)器收集數(shù)據(jù)并存儲(chǔ)在本地的時(shí)序數(shù)據(jù)庫(kù)上。
redis_exporter為Prometheus提供了redis指標(biāo)的導(dǎo)出,配合Prometheus以及grafana進(jìn)行可視化及監(jiān)控。

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于使用IDEA的springboot框架往Redis里寫(xiě)入數(shù)據(jù)亂碼問(wèn)題
這篇文章主要介紹了用IDEA的springboot框架往Redis里寫(xiě)入數(shù)據(jù)亂碼問(wèn)題,本文給大家分享解決方法通過(guò)圖文示例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
Redis之如何實(shí)現(xiàn)用戶(hù)關(guān)注
這篇文章主要介紹了Redis之如何實(shí)現(xiàn)用戶(hù)關(guān)注問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
redis 限制內(nèi)存使用大小的實(shí)現(xiàn)
這篇文章主要介紹了redis 限制內(nèi)存使用大小的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
推薦一款神仙顏值的 Redis 客戶(hù)端工具(速收藏)
這篇文章主要給大家推薦一款神仙顏值的 Redis 客戶(hù)端工具(速收藏),非常好用的redis桌面管理工具,可以運(yùn)行于Linux、Windows、Mac三大平臺(tái),并且當(dāng)加載大數(shù)量的key不會(huì)crash,感興趣的朋友跟隨小編一起看看吧2020-12-12
redis底層數(shù)據(jù)結(jié)構(gòu)之skiplist實(shí)現(xiàn)示例
這篇文章主要為大家介紹了redis底層數(shù)據(jù)結(jié)構(gòu)之skiplist實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
redis鍵值出現(xiàn)\xac\xed\x00\x05t\x00&的問(wèn)題及解決
這篇文章主要介紹了redis鍵值出現(xiàn)\xac\xed\x00\x05t\x00&的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
大家都應(yīng)該知道的Redis過(guò)期鍵與過(guò)期策略
這篇文章主要給大家介紹了一些應(yīng)該知道的Redis過(guò)期鍵與過(guò)期策略的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
詳解redis緩存與數(shù)據(jù)庫(kù)一致性問(wèn)題解決
這篇文章主要介紹了詳解redis緩存與數(shù)據(jù)庫(kù)一致性問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

