CLIENT LIST中qbuf,qbuf-free和obl,oll,omem的含義

id=35 addr=192.168.4.152:56627 fd=41 name= age=427224 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=get


對於qbuf,qbuf-free,其代表輸入緩衝區,官方文檔上解釋如下:

qbuf: query buffer length (0 means no query pending)

qbuf-free: free space of the query buffer (0 means the buffer is full)


qbuf=0,說明沒有命令積壓。

qbuf-free=32768,若按照文檔的解釋,似乎不好理解,其實是說申請了32768字節的內存給後續的命令。命令來了會先放入qbuf中,然後Redis一個一個讀取出來處理。



對於obl,oll,omem,其代表輸出緩衝區,文檔上解釋如下:

obl: output buffer length

oll: output list length (replies are queued in this list when the buffer is full)

omem: output buffer memory usage


輸出緩衝區有兩部分組成,固定緩衝區(obl)和動態緩衝區(oll)。固定緩衝區只有16KB大小,即返回數據量大於16KB時,就會用到動態緩衝區。兩者的計算方式不一樣,固定緩衝區使用字節爲單位,動態緩衝區使用對象個數。omem是指動態緩衝區+固定緩衝區的總字節數。



上面關於輸入和輸出緩衝區2組參數含義,單單看文檔,理解是不透徹的,最好可以結合源碼來看。所以嘛,代碼是最直接的生產力。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章