天天看點

redis debug指令詳解

redis debug指令提供了幾個非常實用的debug功能,本文介紹下redis-2.8.19下的debug指令。

讓redis發生段錯誤,如果開啟了coredump,則會産生core檔案。這個指令實作很簡單,直接往一個非法位址上寫資料。

申請一大片記憶體,直接讓zmalloc觸發oom錯誤

不多解釋

save目前的rdb檔案,并清空目前資料庫,重新加載rdb,加載與啟動時加載類似,加載過程中隻能服務部分隻讀請求(比如info、ping等)

清空目前資料庫,重新從aof檔案裡加載資料庫

檢視一個key内部資訊,比如refcount、encoding、serializedlength等,結果如下

檢視某個sds目前的資訊,目前sds長度,以及可用記憶體長度,結果如下

測試利器,快速産生大量的key

對整個資料庫的資料,産生一個摘要,可用于驗證兩個redis資料庫資料是否一緻

127.0.0.1:6379> debug digest

7164ae8b6730c8bcade46532e5e4a8015d4cccfb

測試利器,用于模拟某個時間開銷的指令,比如debug sleep 0.1就相當于執行了一條開銷為100ms的指令。

測試利器,模拟一條指令執行失敗,發送debug error,redis直接會傳回一個錯誤應答