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

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的流程

相關文章
相關標籤/搜索