亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

Redis慢日志原理及歸檔查詢方案

2023-10-17 03:25:38
41
0

Redis慢日志

redis慢日志也就是redis慢查詢日志。慢查詢是指用戶指令在redis引擎端執行時間較長的查詢,統計慢查詢的時間是指指令的執行時間,并不包含客戶端的網絡傳輸和排隊等待時間。
 
慢查詢日志是Redis引擎端在(zai)命(ming)令執行(xing)前后計算每條命(ming)令的(de)(de)執行(xing)時長,當超過指(zhi)定(ding)閾值時記(ji)(ji)錄下來的(de)(de)日志(zhi)。日志(zhi)中(zhong)(zhong)記(ji)(ji)錄了慢查詢發生的(de)(de)時間,還有執行(xing)時長、具體指(zhi)令等(deng)信息,用來幫助開發和(he)運維人(ren)員定(ding)位系統中(zhong)(zhong)存在(zai)的(de)(de)慢查詢。

慢日志實現邏輯

redis引擎執行指令時都會記錄開始執行時間以及結束時間,當指令執行耗時超過設置的閾值且內存中慢日志記錄條數小于設置的最大條數時,會記錄下該指令的slowlog格式數據。

慢日志操作指令

針對慢日志功能,redis提供具體指令操作慢日志接口,包括查詢慢日志記錄、清理慢日志以及配置慢日志參數。
 

查詢慢日志記錄

可以使用 slowlog get 指令獲取慢(man)查詢日志,還可(ke)以加一個(ge)數字,用(yong)于指定獲(huo)取慢查詢日(ri)志的條(tiao)數。另外,也支持查詢當前系(xi)統中包含(han)的慢日(ri)志條(tiao)數。
 
> slowlog len
(integer) 12

> slowlog get 2
1) 1) (integer) 126
2) (integer) 1613704108
3) (integer) 46004
4) 1) "flushall"
2) 1) (integer) 125
2) (integer) 1608705338
3) (integer) 30449
4) 1) "scan"
2) "0"
3) "MATCH"
4) "*comment*"
5) "COUNT"
6) "10000"
 
可以看出每一條慢查詢日志都有4個屬性組成:
  1. - 唯一標識ID
  2. - 命令執行的時間戳
  3. - 命令執行時長
  4. - 執行的命名和參數

清理慢日志

所有的慢日志記錄都保存在內存中,當記錄的數量達到最大條數,如果還有新慢日志寫入,最早的舊記錄會被清理,為新記錄騰出空間。
 
在做慢日志歸檔時,應盡量避免日志寫滿被動清理,定時讀取慢日志,同時清理系統內存中的日志記錄。
 
> slowlog len
(integer) 11
> slowlog reset
OK
> slowlog len
(integer) 0
 
 

配置慢日志參數

根據上述功能,慢日志需要下面兩個配置:
- 指令執行時長的指定閾值,slowlog-log-slower-than
- 存放慢查詢日志的條數,slowlog-max-len
 
slowlog-log-slower-than的作用是指定命(ming)(ming)令執行(xing)時(shi)長(chang)的閾(yu)值,執行(xing)命(ming)(ming)令的時(shi)長(chang)超過這(zhe)個閾(yu)值時(shi)就會(hui)被(bei)記錄下來。它的單位是微秒(miao)(1秒(miao) = 1000毫秒(miao) = 1000000微秒(miao)),默認(ren)是10000微秒(miao)。
 
slowlog-max-len的作用是指定(ding)慢查(cha)(cha)詢日(ri)志(zhi)最(zui)多存儲的條數。Redis使用了一個(ge)列(lie)(lie)表(biao)(biao)(biao)存放慢查(cha)(cha)詢日(ri)志(zhi),slowlog-max-len就是這(zhe)個(ge)列(lie)(lie)表(biao)(biao)(biao)的最(zui)大長(chang)度(du)。當(dang)一個(ge)新的命(ming)令滿足滿足慢查(cha)(cha)詢條件時,被插入(ru)這(zhe)個(ge)列(lie)(lie)表(biao)(biao)(biao)中(zhong)。當(dang)慢查(cha)(cha)詢日(ri)志(zhi)列(lie)(lie)表(biao)(biao)(biao)已經達到最(zui)大長(chang)度(du)時,最(zui)早插入(ru)的那條命(ming)令將被從列(lie)(lie)表(biao)(biao)(biao)中(zhong)移出。
 
慢日志的兩個參數都可以通過 config 指令查詢和設置,注意修改配置后需要使用rewrite持久化保存配置值
 
> config get slowlog-log-slower-than
(integer) 10000
> config get slowlog-max-len
(inter) 100
> config set slowlog-log-slower-than 1000000
OK
> config set slowlog-max-len 120
OK
>
config rewrite
OK
 

慢日志歸檔及查詢功能

 
通過前端頁面向終端用戶提供慢日志功能,管控組件需要支持redis慢日志歸檔存儲和提供過濾查詢能力,以及在實例參數配置中提供慢日志相關參數的配置發布能力。
 

慢日志參數配置

在使用慢日志功能時,需要關注慢日志相關的配置參數。在實例參數配置頁面,設置slowlog-log-slower-than和slowlog-max-len參(can)數(shu)對應的(de)(de)值,設置(zhi)完成(cheng)后,會影響到系統后續的(de)(de)慢(man)日(ri)志記(ji)錄(lu),按最新的(de)(de)配(pei)置(zhi)值記(ji)錄(lu)慢(man)日(ri)志,但(dan)不會影響到參(can)數(shu)配(pei)置(zhi)前的(de)(de)慢(man)日(ri)志。

慢日志歸檔存儲

通過周期任務,定時查詢實例節點的慢日志,查詢后清理,保存查詢記錄到管控元數據數據庫中,慢日志記錄存儲字段包括:
 
記錄標識ID 執行時間戳 執行耗時 指令及參數 讀寫標識 數據類型 實例ID
 
PS:系統需要有慢日志數據清理動作,清理記錄時間較久遠的慢日志記錄。

慢日志過濾查詢

完成慢日志記錄后就可以提供慢日志查詢功能,可以支持按指令、數據類型、讀寫等維度過濾查詢。
0條評論
作者已關閉評論
1****m
13文章數(shu)
0粉絲(si)數(shu)
1****m
13 文章 | 0 粉(fen)絲
1****m
13文章數
0粉絲數
1****m
13 文章(zhang) | 0 粉絲(si)
原創

Redis慢日志原理及歸檔查詢方案

2023-10-17 03:25:38
41
0

Redis慢日志

redis慢日志也就是redis慢查詢日志。慢查詢是指用戶指令在redis引擎端執行時間較長的查詢,統計慢查詢的時間是指指令的執行時間,并不包含客戶端的網絡傳輸和排隊等待時間。
 
慢查詢日志是Redis引擎端在命(ming)令執(zhi)行前后計算每(mei)條命(ming)令的執(zhi)行時(shi)長,當超過指定(ding)(ding)閾值時(shi)記(ji)錄(lu)下(xia)來的日(ri)志(zhi)。日(ri)志(zhi)中記(ji)錄(lu)了慢查(cha)詢發生(sheng)的時(shi)間,還有執(zhi)行時(shi)長、具(ju)體(ti)指令等信息,用來幫(bang)助開發和運維人員(yuan)定(ding)(ding)位系統(tong)中存在的慢查(cha)詢。

慢日志實現邏輯

redis引擎執行指令時都會記錄開始執行時間以及結束時間,當指令執行耗時超過設置的閾值且內存中慢日志記錄條數小于設置的最大條數時,會記錄下該指令的slowlog格式數據。

慢日志操作指令

針對慢日志功能,redis提供具體指令操作慢日志接口,包括查詢慢日志記錄、清理慢日志以及配置慢日志參數。
 

查詢慢日志記錄

可以使用 slowlog get 指令獲取(qu)慢查詢(xun)日志,還可以加一個數(shu)(shu)字,用于指定獲取慢(man)查詢日(ri)志的條數(shu)(shu)。另外,也支(zhi)持查詢當前系統中包含的慢(man)日(ri)志條數(shu)(shu)。
 
> slowlog len
(integer) 12

> slowlog get 2
1) 1) (integer) 126
2) (integer) 1613704108
3) (integer) 46004
4) 1) "flushall"
2) 1) (integer) 125
2) (integer) 1608705338
3) (integer) 30449
4) 1) "scan"
2) "0"
3) "MATCH"
4) "*comment*"
5) "COUNT"
6) "10000"
 
可以看出每一條慢查詢日志都有4個屬性組成:
  1. - 唯一標識ID
  2. - 命令執行的時間戳
  3. - 命令執行時長
  4. - 執行的命名和參數

清理慢日志

所有的慢日志記錄都保存在內存中,當記錄的數量達到最大條數,如果還有新慢日志寫入,最早的舊記錄會被清理,為新記錄騰出空間。
 
在做慢日志歸檔時,應盡量避免日志寫滿被動清理,定時讀取慢日志,同時清理系統內存中的日志記錄。
 
> slowlog len
(integer) 11
> slowlog reset
OK
> slowlog len
(integer) 0
 
 

配置慢日志參數

根據上述功能,慢日志需要下面兩個配置:
- 指令執行時長的指定閾值,slowlog-log-slower-than
- 存放慢查詢日志的條數,slowlog-max-len
 
slowlog-log-slower-than的(de)作用是(shi)指定命令(ling)執行時長的(de)閾(yu)值,執行命令(ling)的(de)時長超(chao)過這個閾(yu)值時就會(hui)被記(ji)錄(lu)下(xia)來(lai)。它(ta)的(de)單位(wei)是(shi)微秒(miao)(1秒(miao) = 1000毫(hao)秒(miao) = 1000000微秒(miao)),默認是(shi)10000微秒(miao)。
 
slowlog-max-len的(de)作(zuo)用是指定慢查(cha)詢(xun)(xun)日(ri)志最多存儲的(de)條數。Redis使用了一(yi)個(ge)(ge)(ge)列(lie)表存放(fang)慢查(cha)詢(xun)(xun)日(ri)志,slowlog-max-len就是這個(ge)(ge)(ge)列(lie)表的(de)最大長(chang)度。當(dang)一(yi)個(ge)(ge)(ge)新的(de)命(ming)令(ling)滿(man)足滿(man)足慢查(cha)詢(xun)(xun)條件時,被(bei)插(cha)(cha)入這個(ge)(ge)(ge)列(lie)表中(zhong)。當(dang)慢查(cha)詢(xun)(xun)日(ri)志列(lie)表已經達到最大長(chang)度時,最早插(cha)(cha)入的(de)那條命(ming)令(ling)將被(bei)從(cong)列(lie)表中(zhong)移出。
 
慢日志的兩個參數都可以通過 config 指令查詢和設置,注意修改配置后需要使用rewrite持久化保存配置值
 
> config get slowlog-log-slower-than
(integer) 10000
> config get slowlog-max-len
(inter) 100
> config set slowlog-log-slower-than 1000000
OK
> config set slowlog-max-len 120
OK
>
config rewrite
OK
 

慢日志歸檔及查詢功能

 
通過前端頁面向終端用戶提供慢日志功能,管控組件需要支持redis慢日志歸檔存儲和提供過濾查詢能力,以及在實例參數配置中提供慢日志相關參數的配置發布能力。
 

慢日志參數配置

在使用慢日志功能時,需要關注慢日志相關的配置參數。在實例參數配置頁面,設置slowlog-log-slower-than和(he)slowlog-max-len參數對應的值(zhi),設置(zhi)完成后(hou),會影響(xiang)到系統后(hou)續的慢(man)(man)日志記(ji)(ji)錄,按最新的配置(zhi)值(zhi)記(ji)(ji)錄慢(man)(man)日志,但(dan)不會影響(xiang)到參數配置(zhi)前的慢(man)(man)日志。

慢日志歸檔存儲

通過周期任務,定時查詢實例節點的慢日志,查詢后清理,保存查詢記錄到管控元數據數據庫中,慢日志記錄存儲字段包括:
 
記錄標識ID 執行時間戳 執行耗時 指令及參數 讀寫標識 數據類型 實例ID
 
PS:系統需要有慢日志數據清理動作,清理記錄時間較久遠的慢日志記錄。

慢日志過濾查詢

完成慢日志記錄后就可以提供慢日志查詢功能,可以支持按指令、數據類型、讀寫等維度過濾查詢。
文章來自個人專欄
文(wen)章 | 訂閱
0條評論
作者已關閉評論
作者已關閉評論
0
0