1. 程式人生 > >Redis學習筆記04Redis命令之(3)服務器操作

Redis學習筆記04Redis命令之(3)服務器操作

毫秒 上下 set 文件描述符 mil 輸出鏈表 事件 客戶 moni

1.1.1. client list

列出所有客戶端連接信息。

每個連接使用一個id=xxx的行表示。

redis.coe2coe.me:6379> client list

id=8 addr=192.168.197.101:42247 fd=6 name= age=169 idle=169 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=command

id=9 addr=192.168.197.101:42248 fd=7 name= age=134 idle=114 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client

id=10 addr=192.168.197.101:42249 fd=8 name= age=4 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=client

id64bit唯一的客戶端ID

addrIP地址和端口號。

fd: socket對應的文件描述符。

name:客戶端名稱。使用client setname設置,client getname獲取。

age:連接以來的時間,秒。

idle:空閑時間,秒。

flags:標誌。

db:當前選擇的數據庫序號。

sub:頻道訂閱數量。

psub:模式匹配訂閱數量。

multiMULTI/EXEC上下文中的命令數量。

qbuf:查詢緩沖區長度。

qbuf-free:查詢緩沖區空閑空間。

ob1:輸出緩沖區長度。

ol1:輸出鏈表長度,當輸出緩沖區滿時,回復信息在這個鏈表中排隊。

omem:輸出緩沖區內存使用。

events:文件描述符事件。

cmd:執行的最後一個命令。似乎只顯示命令的第1個單詞。

flags標誌的含義如下:

O:客戶端在MONITOR模式中作為slave

S:客戶端是正常的slave

M:客戶端是一個master

x: 客戶端在MULTI/EXEC上下文中。

b:客戶端在等待阻塞操作。

i:客戶端在等待VM I/O(已廢棄)

d:觀察的keys已經被修改了。

c:連接在條目回復後將被關閉。

u:客戶端是非阻塞的。

U:客戶端通過Unix domain socket連接。

r:客戶端作為一個集群結點在只讀模式中。

A:連接將盡快被關閉。

N:沒有設置標誌。

1.1.2. client setname

設置當前連接的客戶端名稱。

redis.coe2coe.me:6379> client setname redis1

OK

redis.coe2coe.me:6379> client getname

"redis1"

redis.coe2coe.me:6379> client setname ""

OK

redis.coe2coe.me:6379> client getname

(nil)

在設置客戶端名稱之後,如果被client kill刪除了,則客戶端名稱被清空了。

1.1.3. client getname

獲取當前連接的客戶端名稱。

redis.coe2coe.me:6379> client getname

(nil)

默認情況下名稱為空。可使用client getname設置。

redis.coe2coe.me:6379> client setname redis1

OK

redis.coe2coe.me:6379> client getname

"redis1"

1.1.4. client kill

斷開指定的客戶端的連接,即刪除指定的客戶端。可按以下幾種方式進行刪除:

(1)參數為客戶端連接的IP地址和端口號。

假定當前有redis1,redis2,redis3三個連接:

redis.coe2coe.me:6379> client list

id=13 addr=192.168.197.101:42252 fd=6 name=redis3 age=489 idle=4 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client

id=14 addr=192.168.197.101:42253 fd=7 name=redis1 age=477 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=client

id=15 addr=192.168.197.101:42254 fd=8 name=redis2 age=41 idle=10 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client

現在刪除掉redis3這個連接,地址為192.168.197.101:42252

redis.coe2coe.me:6379> client kill 192.168.197.101:42252

OK

刪除客戶端成功。

再次查看客戶端列表,只有2個連接了。

redis.coe2coe.me:6379> client list

id=14 addr=192.168.197.101:42253 fd=7 name=redis1 age=499 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=client

id=15 addr=192.168.197.101:42254 fd=8 name=redis2 age=63 idle=32 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client

redis.coe2coe.me:6379>

(2)按照客戶端ID進行刪除。

redis.coe2coe.me:6379> client kill id 14

(integer) 0

默認情況下,skipmetrue,刪除當前連接似乎是刪除不掉的。

redis.coe2coe.me:6379> client kill id 14 skipme no

(integer) 1

指定skipmeno,則可以成功刪除當前連接。

redis.coe2coe.me:6379> client kill id 16

(integer) 1

id16的連接刪除成功了。

客戶端每次連接到redis服務後,產生一個新的IDID的序號總是不斷的增加。

1.1.5. client pause

讓所有客戶端暫停指定時間,單位,毫秒。

redis.coe2coe.me:6379> client pause 10000

OK

所有客戶端將暫停10秒鐘。

立即執行client list指令:

redis.coe2coe.me:6379> client list

並不會立即取得相應結果,而是在等待了一段時間後才取得結果:

id=18 addr=192.168.197.101:42257 fd=6 name= age=152 idle=7 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client

id=19 addr=192.168.197.101:42258 fd=7 name=redis3 age=121 idle=1 flags=u db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client

id=20 addr=192.168.197.101:42259 fd=8 name=redis2 age=112 idle=4 flags=u db=0 sub=0 psub=0 multi=-1 qbuf=41 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client

(7.06s)

括號中的數字表明此命令等待了7.06秒。

1.1.6. monitor

實時監控Redis收到的各種命令,並反饋到執行monitor命令的客戶端連接上。

redis.coe2coe.me:6379> monitor

OK

註意:此時不再顯示redis提示符。

此時在其它客戶端連接上執行一些命令,則這裏可以看到所執行的命令,包含參數,但是不包括Redis反饋的執行結果。

1499848978.376966 [0 192.168.197.101:42265] "AUTH" "123456"

1499848978.377772 [0 192.168.197.101:42265] "COMMAND"

1499848991.031939 [0 192.168.197.101:42266] "AUTH" "123456"

1499849008.065442 [0 192.168.197.101:42266] "ping"

1499849034.680658 [0 192.168.197.101:42266] "echo" "hello"

1499849323.293098 [0 192.168.197.101:42267] "set" "host" "redis.coe2coe.me"

Redis學習筆記04Redis命令之(3)服務器操作