redis 慢查詢、Pipeline


1、慢查詢
  1. 簡介

    1. 慢查詢顧名思義是將redis執行命令較慢的命令記錄下來,redis處理慢查詢時是將慢查詢記錄到慢查詢隊列中
  2. 慢查詢配置

    1. slowlog-max-len 慢查詢隊列長度(記錄多少條慢查詢,默認128)
    2. slowlog-log-slower-than 慢查詢閥值(單位:微秒,默認10000)

      1. slowlog-log-slower-than=0, 記錄所有命令
      2. slowlog-log-slower-than<0, 不記錄任何命令
    3. 查看當前配置
127.0.0.1:6379> config get slowlog* 1) "slowlog-log-slower-than" 2) "10000" 3) "slowlog-max-len" 4) "128"
  1. 動態配置(還可以修改配置文件重啟,但不建議,特別是沒做持久化的redis)

    1. config set slowlog-max-len 100
    2. config set slowlog-log-slower-than 1000
  2. 慢查詢命令

    1. slowlog get [n] : 獲取慢查詢隊列
    2. slowlog len : 獲取慢查詢隊列長度
    3. slowlog reset : 清空慢查詢隊列
2、Pipeline(流水線)
  1. 簡介

    1. redis執行一條命令有四個過程:發送命令、命令排隊、命令執行、返回結果;整個過程是一個往返時間(RTT)。如果有n條命令,就會消耗n次RTT。Redis的客戶端和服務端可能部署在不同的機器上。在兩地的數據傳輸受網絡速度的影響,消耗n次的RTT會增加網絡成本,這個和Redis的高並發高吞吐特性背道而馳。Pipeline(流水線)機制能改善上面這類問題,它能將一組Redis命令進行組裝,通過一次RTT傳輸給Redis,再將這組Redis命令的執行結果按順序返回給客戶端。這樣就只要一次的往返時間。
  2. 作用

    1. 為了解決批量處理而消耗的大量網絡傳輸時間(因為redis執行是微妙級,大量操作更多消耗的是網絡時間)
    2. 對比單次操作
命令 時間 數據量 特性
n個命令 n次網絡 + n次執行 1條命令 原子性
1次pipeline(n個命令) 1次網絡 + n次執行 n條命令 非原子性

PS: 更多文章請關注微信公眾號:浮話


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM