Redis深入學習筆記(二)client list 命令詳解


Redis的client list 命令可以獲取當前連接到redis server端的所有客戶端以及相關狀態,本篇主要介紹每一個參數的作用。

clisnt list 命令輸出結果如下:

(1)標識:id、addr、fd、name這四個屬性屬於客戶端的標識:

    id:客戶端連接的唯一標識,這個id是隨着Redis的連接自增的,重啟Redis后會重置為0。

    addr:客戶端連接的ip和端口。

    fd:socket的文件描述符,與lsof命令結果中的fd是同一個,如果fd=-1代表當前客戶端不是外部客戶端,而是Redis內部的偽裝客戶端。

    name:客戶端的名字,后面的client setName和client getName兩個命令會對其進行說明。

(2)輸入緩沖區:qbuf、qbuf-free

    Redis為每個客戶端分配了輸入緩沖區,它的作用是將客戶端發送的命令臨時保存,同時Redis從會輸入緩沖區拉取命令並執行,輸入緩沖區為客戶端發送命令到Redis執行命令提供了緩沖功能。qbuf和qbuf-free分別代表這個緩沖區的總容量和剩余容量Redis沒有提供相應的配置來規定每個緩沖區的大小,輸入緩沖區會根據輸入內容大小的不同動態調整,只是要求每個客戶端緩沖區的大小不能超過1G,超過后客戶端將被關閉。

(3)輸出緩沖區:obl、oll、omem

    Redis為每個客戶端分配了輸出緩沖區,它的作用是保存命令執行的結果返回給客戶端,為Redis和客戶端交互返回結果提供緩沖,與輸入緩沖區不同的是,輸出緩沖區的容量可以通過參數client-output-buffer-limit來進行設置,並且輸出緩沖區做得更加細致,按照客戶端的不同分為三種:普通客戶端、發布訂閱客戶端、slave客戶端。

    輸出緩沖區由兩部分組成:固定緩沖區(16KB)和動態緩沖區,固定緩沖區使用的是字節數組,動態緩沖區使用的是列表。當固定緩沖區存滿后會將Redis新的返回結果存放在動態緩沖區的隊列中,隊列中的每個對象就是每個返回結果

    obl代表固定緩沖區的長度,oll代表動態緩沖區列表的長度,omem代表使用的字節數。

其他參數作用:

  age:客戶端連接存活時間

  idle :客戶端連接空閑時間

  flags:客戶端類型標識

  db:當前客戶端正在使用的數據庫索引下標

  sub/psub:當前客戶端訂閱的頻道或者模式數

  multi:當前事務中已執行的命令個數

  event:文件描述符事件(r/w):r和w分別代表客戶端套接字可讀和可寫

  cmd:當前客戶端最后一次執行的命令,不包含參數

 

下一篇會介紹RDB及AOF的流程


免責聲明!

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



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