慢查詢(xún),大家可能已經(jīng)接觸到了MySQL的慢查詢(xún)。我們配置一個(gè)時(shí)間,如果查詢(xún)時(shí)間超過(guò)了我們?cè)O(shè)置的時(shí)間,我們就認(rèn)為這是一個(gè)慢查詢(xún).

如上圖所示:redis客戶(hù)端一條命令執(zhí)行分4個(gè)步驟:
- 發(fā)送命令
- 命令進(jìn)入隊(duì)列排隊(duì)
- 執(zhí)行命令
- 返回結(jié)果
慢查詢(xún)統(tǒng)計(jì)的是第3步(執(zhí)行命令)的時(shí)間。
參數(shù)配置
慢查詢(xún)有兩個(gè)參數(shù)需要配置:
- [ ] slowlog-log-slower-than 表示慢查詢(xún)預(yù)設(shè)的超時(shí)閥值,單位是微妙(μs)
1s = 1000ms = 1_000_000μs
默認(rèn)10000微秒,即10毫秒
執(zhí)行超過(guò)這個(gè)時(shí)間的命令將被記錄到慢查詢(xún)?nèi)罩?br />slowlog-log-slower-than = 0:表示記錄所有命令。
slowlog-log-slower-than < 0:表示不記錄 - [ ] slowlog-max-len 表示慢查詢(xún)?nèi)罩镜臈l數(shù)
默認(rèn)為 128
Redis使用列表存儲(chǔ)慢查詢(xún)?nèi)罩?br />當(dāng)已經(jīng)記錄了128條慢查詢(xún),現(xiàn)在又來(lái)一條,最早記錄的那條將被踢出,最新一條入列
修改配置
- 直接修改配置文件
- config set 命令動(dòng)態(tài)修改

慢查詢(xún)?nèi)罩静僮?/p>
- 查詢(xún)

當(dāng)我們執(zhí)行了查詢(xún)命令之后,一條慢查詢(xún)記錄顯示如下:

可以看到日志由4個(gè)屬性組成:
1)日志的標(biāo)識(shí)id
2)發(fā)生的時(shí)間戳
3)命令耗時(shí)
4)執(zhí)行的命令和參數(shù)
- 獲取慢查詢(xún)列表長(zhǎng)度
slowlog len
- 清空日志列表
# 如果慢查詢(xún)?cè)O(shè)置的閥值是0,那么再查詢(xún)len的時(shí)候?yàn)?。 slowlog reset
redis.conf慢查詢(xún)的注釋和配置
