您好,登錄后才能下訂單哦!
redis debug命令提供了幾個非常實用的debug功能,本文介紹下redis下的debug命令。
debug segment
讓redis發生段錯誤,如果開啟了coredump,則會產生core文件。這個命令實現很簡單,直接往一個非法地址上寫數據。
*((char*)-1) = 'x';
debug oom
申請一大片內存,直接讓zmalloc觸發oom錯誤
void *ptr = zmalloc(ULONG_MAX); /* Should trigger an out of memory. */
zfree(ptr);
addReply(c,shared.ok);
debug assert
不多解釋
redisAssertWithInfo(c,c->argv[0],1 == 2);
debug reload
save當前的rdb文件,并清空當前數據庫,重新加載rdb,加載與啟動時加載類似,加載過程中只能服務部分只讀請求(比如info、ping等)
rdbSave();
emptyDb();
rdbLoad();
debug loadaof
清空當前數據庫,重新從aof文件里加載數據庫
emptyDb();
loadAppendOnlyFile();
debug object
查看一個key內部信息,比如refcount、encoding、serializedlength等,結果如下
Value at:0x7f21b9479850 refcount:1 encoding:raw serializedlength:6 lru:8462202 lru_seconds_idle:215
debug sdslen
查看某個sds當前的信息,當前sds長度,以及可用內存長度,結果如下
key_sds_len:3, key_sds_avail:0, val_sds_len:5, val_sds_avail:0
debug populate
測試利器,快速產生大量的key
127.0.0.1:6379> debug populate 10000
OK
127.0.0.1:6379> dbsize
(integer) 10000
debug digest
對整個數據庫的數據,產生一個摘要,可用于驗證兩個redis數據庫數據是否一致
127.0.0.1:6379> debug digest
7164ae8b6730c8bcade46532e5e4a8015d4cccfb
127.0.0.1:6379> debug digest
7164ae8b6730c8bcade46532e5e4a8015d4cccfb
debug sleep
測試利器,用于模擬某個時間開銷的命令,比如debug sleep 0.1就相當于執行了一條開銷為100ms的命令。
127.0.0.1:6379> debug sleep 1
OK
(1.00s)
debug error
測試利器,模擬一條命令執行失敗,發送debug error,redis直接會返回一個錯誤應答
127.0.0.1:6379> debug error "test"
(error) test
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。