?
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
CLIENT KILL [ip:port] [ID client-id] [TYPE normal|master|slave|pubsub] [ADDR ip:port] [SKIPME yes/no]
自2.4.0起可用。
時間復雜度: O(N)其中 N 是客戶端連接數
CLIENT KILL 命令關閉給定的客戶端連接。截至 Redis 2.8.11 ,可以僅通過客戶端地址關閉連接,使用以下格式:
CLIENT KILL addr:port
在ip:port
應該與由客戶端列表命令(返回線addr
字段)。
但是,從 Redis 2.8.12 或更高版本開始,該命令接受以下格式:
CLIENT KILL <filter> <value> ... ... <filter> <value>
使用新形式,可以通過不同的屬性處理客戶端,而不是僅僅通過地址來處理客戶端。以下過濾器可用:
CLIENT KILL ADDR ip:port
。這與舊的三參數行為完全一樣。
CLIENT KILL ID client-id
。允許通過其唯一ID
字段來終止客戶端,該字段是從 Redis 2.8.12 開始的 CLIENT LIST 命令中引入的。
CLIENT KILL TYPE type
,其中類型是之一normal
,master
,slave
和pubsub
(的master
類型可從V3.2)。這將關閉指定類中所有客戶端的連接。請注意,被鎖定到 MONITOR 命令中的客戶端被認為屬于normal
該類。
CLIENT KILL SKIPME yes/no
。默認情況下,這個選項被設置為yes
,也就是說,調用該命令的客戶端不會被no
終止,但是設置該選項的效果也會導致調用該命令的客戶端被終止。
可以同時提供多個過濾器。該命令將通過邏輯 AND 處理多個過濾器。例如:
CLIENT KILL addr 127.0.0.1:6379 type slave
是有效的,只會處理具有指定地址的從站。這種包含多個過濾器的格式目前很少有用。
當使用新表單時,命令不再返回OK
或發(fā)生錯誤,而是終止的客戶機數量,可能為零。
最近版本的 Redis Sentinel( Redis 2.8.12 或更高版本)使用 CLIENT KILL 為了在重新配置實例時終止客戶端,以強制客戶端再次與一個 Sentinel 執(zhí)行握手并更新其配置。
由于 Redis 的單線程性質,在執(zhí)行命令時無法終止客戶端連接。從客戶的角度來看,連接永遠不會在執(zhí)行命令的過程中關閉。但是,客戶端會注意到,只有在發(fā)送下一個命令時才會關閉連接(并導致網絡錯誤)。
當用三個參數格式調用時:
簡單的字符串回復:OK
如果連接存在并且已關閉
當用過濾器/值格式調用時:
整數回復:已解決的客戶數量。