本文主要記錄一下redis除錯相關的命令, 命令總覽: 1.PING 2.ECHO 3.OBJECT 4.SLOWLOG 5.MONITOR 6.DEBUG_OBJECT 7.DEBUG_SEGFAULT 命令介紹: 1.PING 可用版本: >=1.0.0 時間復雜度: O(1) 命令格式: PING 作用: 使用客戶端向 Redis 服務器發送一個 PING ,如果服務器運作正常的話,會回傳一個 PONG , 回傳值: 如果連接正常就回傳一個 PONG ,否則回傳一個連接錯誤, 命令演示:
127.0.0.1:6379> ping PONG
2.ECHO 可用版本: >=1.0.0 時間復雜度: O(1) 命令格式: ECHO message 作用: 列印一個特定的資訊message, 回傳值: 回傳message, 命令演示:
127.0.0.1:6379> echo "hello" "hello"
3.OBJECT 可用版本: >=2.2.3 時間復雜度: O(1) 命令格式: OBJECT subcommand [argments [argments]] 作用: OBJECT 命令允許從內部察看給定 key 的 Redis 物件, 它通常用在除錯(debugging)或者了解為了節省空間而對 key 使用特殊編碼的情況, 當將Redis用作快取程式時,你也可以通過 OBJECT 命令中的資訊,決定 key 的驅逐策略(eviction policies), 子命令: OBJECT REFCOUNT <key> 回傳給定 key 參考所儲存的值的次數,此命令主要用于除錯, OBJECT ENCODING <key> 回傳給定 key 鎖儲存的值所使用的內部表示(representation), OBJECT IDLETIME <key> 回傳給定 key 自儲存以來的空閑時間(idle, 沒有被讀取也沒有被寫入),以秒為單位, 回傳值: REFCOUNT 和 IDLETIME 回傳數字, ENCODING 回傳相應的編碼型別, 其它: 字串可以被編碼為 raw (一般字串)或 int (為了節約記憶體,Redis 會將字串表示的 64 位有符號整數編碼為整數來進行儲存), 串列可以被編碼為 ziplist 或 linkedlist , ziplist 是為節約大小較小的串列空間而作的特殊表示, 集合可以被編碼為 intset 或者 hashtable , intset 是只儲存數字的小集合的特殊表示, 哈希表可以編碼為 zipmap 或者 hashtable , zipmap 是小哈希表的特殊表示, 有序集合可以被編碼為 ziplist 或者 skiplist 格式, ziplist 用于表示小的有序集合,而 skiplist 則用于表示任何大小的有序集合, 命令演示:
127.0.0.1:6379> set name 'Zhangsan' OK 127.0.0.1:6379> OBJECT refcount name (integer) 1 127.0.0.1:6379> OBJECT idletime name (integer) 27 127.0.0.1:6379> get name "Zhangsan" 127.0.0.1:6379> OBJECT idletime name (integer) 1 127.0.0.1:6379> OBJECT encoding name "embstr" 127.0.0.1:6379> set bnum 111999999999999999999999999999999999 OK 127.0.0.1:6379> OBJECT encoding bnum "embstr" 127.0.0.1:6379> set snum 123 OK 127.0.0.1:6379> OBJECT encoding snum "int"
4.SLOWLOG 可用版本: >=2.2.12 時間復雜度: O(1) 命令格式: slowlog get number 作用: Slow log 是 Redis 用來記錄查詢執行時間的日志系統, 查詢執行時間指的是不包括像客戶端回應(talking)、發送回復等 IO 操作,而單單是執行一個查詢命令所耗費的時間, 另外,slow log 保存在記憶體里面,讀寫速度非常快,因此你可以放心地使用它,不必擔心因為開啟 slow log 而損害 Redis 的速度, 設定: Slow log 的行為由兩個配置引數(configuration parameter)指定,可以通過改寫 redis.conf 檔案或者用 CONFIG GET 和 CONFIG SET 命令對它們動態地進行修改, 第一個選項是 slowlog-log-slower-than ,它決定要對執行時間大于多少微秒(microsecond,1秒 = 1,000,000 微秒)的查詢進行記錄, 比如執行以下命令將讓 slow log 記錄所有查詢時間大于等于 100 微秒的查詢:
CONFIG SET slowlog-log-slower-than 100
而以下命令記錄所有查詢時間大于 1000 微秒的查詢:
CONFIG SET slowlog-log-slower-than 1000
另一個選項是 slowlog-max-len ,它決定 slow log 最多能保存多少條日志, slow log 本身是一個 FIFO 佇列,當佇列大小超過 slowlog-max-len 時,最舊的一條日志將被洗掉,而最新的一條日志加入到 slow log ,以此類推, 以下命令讓 slow log 最多保存 1000 條日志:
CONFIG SET slowlog-max-len 1000
回傳值: 取決于不同命令,回傳不同的值, 其它: 不添加number引數的話,將會列印所有的slow log,有number引數的話,列印前number條slow log,最新的日志將會最先列印出來, 可以使用slowlog len查看當前日志數量, 可以使用slowlog reset 清空當前記錄的slow log, 命令演示:
127.0.0.1:6379> CONFIG GET slowlog-log-slower-than 1) "slowlog-log-slower-than" 2) "10000" 127.0.0.1:6379> CONFIG GET slowlog-max-len 1) "slowlog-max-len" 2) "128" 127.0.0.1:6379> SLOWLOG get (empty array) 127.0.0.1:6379> SLOWLOG get 1 (empty array) 127.0.0.1:6379> SLOWLOG len (integer) 0 127.0.0.1:6379> SLOWLOG reset OK
5.MONITOR 可用版本: >=1.0.0 時間復雜度: O(N) 命令格式: MONITOR 作用: 實時列印出Redis服務器接收到的命令, 回傳值: 回傳OK, 6.DEBUG_OBJECT 可用版本: >=1.0.0 時間復雜度: O(1) 命令格式: DEBUG OBJECT key 作用: 查看key的相關資訊 回傳值: key存在,回傳相關資訊,不存在回傳error,
127.0.0.1:6379> DEBUG OBJECT snum Value at:0x7ff60804da80 refcount:2147483647 encoding:int serializedlength:2 lru:689083 lru_seconds_idle:1752 127.0.0.1:6379> DEBUG OBJECT snumc (error) ERR no such key
7.DEBUG_SETFAULT 可用版本: >=1.0.0 時間復雜度: O(1) 命令格式: DEBUG SETFAULT 作用: 執行一個不合法的記憶體訪問從而讓 Redis 崩潰,僅在開發時用于 BUG 模擬, 回傳值: 無,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/255557.html
標籤:其他
