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