?
? ????? PHP ??? ???? ??? ?? ??
CLIENT PAUSE timeout
自2.9.50起可用。
時(shí)間復(fù)雜度: O(1)
CLIENT PAUSE 是一個(gè)連接控制命令,它能夠在指定的時(shí)間內(nèi)(以毫秒為單位)掛起所有 Redis 客戶(hù)端。
該命令執(zhí)行以下操作:
它會(huì)停止處理來(lái)自普通客戶(hù)端和發(fā)布/訂閱客戶(hù)端的所有未決命令。然而,與從站的互動(dòng)將繼續(xù)正常。
但是,對(duì)調(diào)用方 ASAP 返回 OK ,因此 CLIENT PAUSE 命令執(zhí)行不會(huì)自行暫停。
當(dāng)指定的時(shí)間已過(guò)時(shí),所有客戶(hù)端都將被解除阻塞:這將觸發(fā)在暫停期間處理每個(gè)客戶(hù)端的查詢(xún)緩沖區(qū)中累積的所有命令。
該命令非常有用,因?yàn)樗軌蛞允芸胤绞綄⒖蛻?hù)端從 Redis 實(shí)例切換到另一個(gè)實(shí)例。例如,在實(shí)例升級(jí)期間,系統(tǒng)管理員可以執(zhí)行以下操作:
使用 CLIENT PAUSE 暫??蛻?hù)端
等待幾秒鐘以確保從服務(wù)器處理來(lái)自主服務(wù)器的最新復(fù)制流。
把其中一個(gè)從站變成主站。
重新配置客戶(hù)端以連接新主服務(wù)器。
可以在 MULTI / EXEC 塊中將 CLIENT PAUSE 與INFO replication
命令一起發(fā)送,以便在客戶(hù)端被阻止時(shí)獲得當(dāng)前的主站偏移量。這樣就可以等待從屬端的特定偏移量,以確保處理所有的復(fù)制流。
由于 Redis 3.2.10 / 4.0.0 ,此命令還可以防止在客戶(hù)端暫停期間鍵被驅(qū)逐或過(guò)期。這樣,不僅從客戶(hù)端無(wú)法寫(xiě)入的角度,而且從內(nèi)部操作的角度來(lái)看,數(shù)據(jù)集保證是靜態(tài)的。
簡(jiǎn)單字符串回復(fù):如果超時(shí)無(wú)效,則該命令返回 OK 或錯(cuò)誤。