?
このドキュメントでは、 php中國語ネットマニュアル リリース
CLIENT PAUSE timeout
自2.9.50起可用。
時間復雜度: O(1)
CLIENT PAUSE 是一個連接控制命令,它能夠在指定的時間內(以毫秒為單位)掛起所有 Redis 客戶端。
該命令執(zhí)行以下操作:
它會停止處理來自普通客戶端和發(fā)布/訂閱客戶端的所有未決命令。然而,與從站的互動將繼續(xù)正常。
但是,對調用方 ASAP 返回 OK ,因此 CLIENT PAUSE 命令執(zhí)行不會自行暫停。
當指定的時間已過時,所有客戶端都將被解除阻塞:這將觸發(fā)在暫停期間處理每個客戶端的查詢緩沖區(qū)中累積的所有命令。
該命令非常有用,因為它能夠以受控方式將客戶端從 Redis 實例切換到另一個實例。例如,在實例升級期間,系統(tǒng)管理員可以執(zhí)行以下操作:
使用 CLIENT PAUSE 暫??蛻舳?/p>
等待幾秒鐘以確保從服務器處理來自主服務器的最新復制流。
把其中一個從站變成主站。
重新配置客戶端以連接新主服務器。
可以在 MULTI / EXEC 塊中將 CLIENT PAUSE 與INFO replication
命令一起發(fā)送,以便在客戶端被阻止時獲得當前的主站偏移量。這樣就可以等待從屬端的特定偏移量,以確保處理所有的復制流。
由于 Redis 3.2.10 / 4.0.0 ,此命令還可以防止在客戶端暫停期間鍵被驅逐或過期。這樣,不僅從客戶端無法寫入的角度,而且從內部操作的角度來看,數(shù)據集保證是靜態(tài)的。
簡單字符串回復:如果超時無效,則該命令返回 OK 或錯誤。