W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
服務(wù)器狀態(tài)中包含了幾個和慢查詢?nèi)罩竟δ苡嘘P(guān)的屬性:
struct redisServer {
// ...
// 下一條慢查詢?nèi)罩镜?ID
long long slowlog_entry_id;
// 保存了所有慢查詢?nèi)罩镜逆湵? list *slowlog;
// 服務(wù)器配置 slowlog-log-slower-than 選項的值
long long slowlog_log_slower_than;
// 服務(wù)器配置 slowlog-max-len 選項的值
unsigned long slowlog_max_len;
// ...
};
slowlog_entry_id
屬性的初始值為 0
, 每當(dāng)創(chuàng)建一條新的慢查詢?nèi)罩緯r, 這個屬性的值就會用作新日志的 id
值, 之后程序會對這個屬性的值增一。
比如說, 在創(chuàng)建第一條慢查詢?nèi)罩緯r, slowlog_entry_id
的值 0
會成為第一條慢查詢?nèi)罩镜?ID , 而之后服務(wù)器會對這個屬性的值增一; 當(dāng)服務(wù)器再創(chuàng)建新的慢查詢?nèi)罩镜臅r候, slowlog_entry_id
的值 1
就會成為第二條慢查詢?nèi)罩镜?ID , 然后服務(wù)器再次對這個屬性的值增一, 以此類推。
slowlog
鏈表保存了服務(wù)器中的所有慢查詢?nèi)罩荆?鏈表中的每個節(jié)點都保存了一個 slowlogEntry
結(jié)構(gòu), 每個 slowlogEntry
結(jié)構(gòu)代表一條慢查詢?nèi)罩荆?/p>
typedef struct slowlogEntry {
// 唯一標(biāo)識符
long long id;
// 命令執(zhí)行時的時間,格式為 UNIX 時間戳
time_t time;
// 執(zhí)行命令消耗的時間,以微秒為單位
long long duration;
// 命令與命令參數(shù)
robj **argv;
// 命令與命令參數(shù)的數(shù)量
int argc;
} slowlogEntry;
舉個例子, 對于以下慢查詢?nèi)罩緛碚f:
1) (integer) 3
2) (integer) 1378781439
3) (integer) 10
4) 1) "SET"
2) "number"
3) "10086"
圖 23-1 展示的就是該日志所對應(yīng)的 slowlogEntry
結(jié)構(gòu)。
圖 23-2 展示了服務(wù)器狀態(tài)中, 和慢查詢功能有關(guān)的屬性:
slowlog_entry_id
的值為 6
, 表示服務(wù)器下條慢查詢?nèi)罩镜?nbsp;id
值將為 6
。slowlog
鏈表包含了 id
為 5
至 1
的慢查詢?nèi)罩荆?最新的 5
號日志排在鏈表的表頭, 而最舊的 1
號日志排在鏈表的表尾, 這表明slowlog
鏈表是使用插入到表頭的方式來添加新日志的。slowlog_log_slower_than
記錄了服務(wù)器配置 slowlog-log-slower-than
選項的值 0
, 表示任何執(zhí)行時間超過 0
微秒的命令都會被慢查詢?nèi)罩居涗洝?/li>
slowlog-max-len
屬性記錄了服務(wù)器配置 slowlog-max-len
選項的值 5
, 表示服務(wù)器最多儲存五條慢查詢?nèi)罩尽?/li>
注意
因為版面空間不足的緣故, 所以圖 23-2 展示的各個
slowlogEntry
結(jié)構(gòu)都省略了argv
數(shù)組。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: