Redis學習筆記04Redis命令之(3)服務器操作
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
id:64bit唯一的客戶端ID。
addr:IP地址和端口號。
fd: socket對應的文件描述符。
name:客戶端名稱。使用client setname設置,client getname獲取。
age:連接以來的時間,秒。
idle:空閑時間,秒。
flags:標誌。
db:當前選擇的數據庫序號。
sub:頻道訂閱數量。
psub:模式匹配訂閱數量。
multi: MULTI/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
默認情況下,skipme為true,刪除當前連接似乎是刪除不掉的。
redis.coe2coe.me:6379> client kill id 14 skipme no
(integer) 1
指定skipme為no,則可以成功刪除當前連接。
redis.coe2coe.me:6379> client kill id 16
(integer) 1
id為16的連接刪除成功了。
客戶端每次連接到redis服務後,產生一個新的ID。ID的序號總是不斷的增加。
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)服務器操作