Redis的client list 命令能夠獲取當前鏈接到redis server端的全部客戶端以及相關狀態,本篇主要介紹每個參數的做用。redis
clisnt list 命令輸出結果以下:數據庫
(1)標識:id、addr、fd、name這四個屬性屬於客戶端的標識:數組
id:客戶端鏈接的惟一標識,這個id是隨着Redis的鏈接自增的,重啓Redis後會重置爲0。socket
addr:客戶端鏈接的ip和端口。server
fd:socket的文件描述符,與lsof命令結果中的fd是同一個,若是fd=-1表明當前客戶端不是外部客戶端,而是Redis內部的假裝客戶端。對象
name:客戶端的名字,後面的client setName和client getName兩個命令會對其進行說明。blog
(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的流程