99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Redis 慢查詢日志

2018-08-02 11:55 更新

慢查詢日志

慢查詢日志是 Redis 提供的一個用于觀察系統(tǒng)性能的功能,這個功能的實現非常簡單,這里我們也簡單地講解一下。

本章先介紹和慢查詢功能相關的數據結構和變量,然后介紹 Redis 是如何記錄命令的執(zhí)行時間,以及如何為執(zhí)行超過限制事件的命令記錄慢查詢日志的。

相關數據結構

每條慢查詢日志都以一個 slowlog.h/slowlogEntry 結構定義:

typedef struct slowlogEntry {

    // 命令參數
    robj **argv;

    // 命令參數數量
    int argc;

    // 唯一標識符
    long long id;       /* Unique entry identifier. */

    // 執(zhí)行命令消耗的時間,以納秒(1 / 1,000,000,000 秒)為單位
    long long duration; /* Time spent by the query, in nanoseconds. */

    // 命令執(zhí)行時的時間
    time_t time;        /* Unix time at which the query was executed. */

} slowlogEntry;

記錄服務器狀態(tài)的 redis.h/redisServer 結構里保存了幾個和慢查詢有關的屬性:

struct redisServer {

    // ... other fields

    // 保存慢查詢日志的鏈表
    list *slowlog;                  /* SLOWLOG list of commands */

    // 慢查詢日志的當前 id 值
    long long slowlog_entry_id;     /* SLOWLOG current entry ID */

    // 慢查詢時間限制
    long long slowlog_log_slower_than; /* SLOWLOG time limit (to get logged) */

    // 慢查詢日志的最大條目數量
    unsigned long slowlog_max_len;     /* SLOWLOG max number of items logged */

    // ... other fields
};

slowlog 屬性是一個鏈表,鏈表里的每個節(jié)點保存了一個慢查詢日志結構,所有日志按添加時間從新到舊排序,新的日志在鏈表的左端,舊的日志在鏈表的右端。

slowlog_entry_id 在創(chuàng)建每條新的慢查詢日志時增一,用于產生慢查詢日志的 ID (這個 ID 在執(zhí)行 SLOWLOG RESET 之后會被重置)。

slowlog_log_slower_than 是用戶指定的命令執(zhí)行時間上限,執(zhí)行時間大于等于這個值的命令會被慢查詢日志記錄。

slowlog_max_len 慢查詢日志的最大數量,當日志數量等于這個值時,添加一條新日志會造成最舊的一條日志被刪除。

下圖展示了一個 slowlog 屬性的實例:

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號