?
This document uses PHP Chinese website manual Release
CLUSTER ADDSLOTS slot [slot ...]
自3.0.0起可用。
時(shí)間復(fù)雜度: O(N)其中N是散列槽參數(shù)的總數(shù)
此命令對(duì)于修改節(jié)點(diǎn)的群集配置視圖很有用。具體來說,它將一組散列槽分配給接收該命令的節(jié)點(diǎn)。如果命令成功,節(jié)點(diǎn)將把指定的散列槽映射到自己,并開始廣播新的配置。
但,請(qǐng)注意:
1. 僅當(dāng)從接收命令的節(jié)點(diǎn)的角度來看,所有指定的插槽當(dāng)前未分配時(shí),該命令才起作用。節(jié)點(diǎn)將拒絕對(duì)已經(jīng)屬于某個(gè)其他節(jié)點(diǎn)(包括它自己)的插槽擁有所有權(quán)。
2. 如果多次指定同一個(gè)插槽,則命令失敗。
3. 作為命令執(zhí)行的副作用,如果將指定為參數(shù)的插槽中的插槽設(shè)置為importing
,則一旦節(jié)點(diǎn)將(先前未綁定的)插槽分配給其自身,則將清除該狀態(tài)。
例如,以下命令將插槽1 2 3分配給接收該命令的節(jié)點(diǎn):
> CLUSTER ADDSLOTS 1 2 3OK
但是,嘗試再次執(zhí)行它會(huì)導(dǎo)致錯(cuò)誤,因?yàn)橐呀?jīng)分配了插槽:
> CLUSTER ADDSLOTS 1 2 3ERR Slot 1 is already busy
該命令僅適用于集群模式,在以下 Redis 集群操作中很有用:
1. 創(chuàng)建一個(gè)新的集群 ADDSLOTS 用于初始設(shè)置主節(jié)點(diǎn)拆分它們之間的可用哈希槽。
2. 為了修復(fù)某些插槽未分配時(shí)損壞的群集。
請(qǐng)注意,一旦節(jié)點(diǎn)為其自身分配一組插槽,它將開始在心跳包頭中傳播此信息。但是,其他節(jié)點(diǎn)只有在插槽尚未與另一個(gè)節(jié)點(diǎn)綁定的情況下,或者通告新散列插槽的節(jié)點(diǎn)的配置歷元大于表中當(dāng)前列出的節(jié)點(diǎn)時(shí)才會(huì)接受信息。
這意味著這個(gè)命令只應(yīng)該被管理 Redis 集群的應(yīng)用程序所關(guān)注,比如redis-trib
,如果在正確的上下文中使用該命令會(huì)使集群處于錯(cuò)誤狀態(tài)或?qū)е聰?shù)據(jù)丟失。
簡(jiǎn)單的字符串回復(fù):OK
如果命令成功。否則會(huì)返回錯(cuò)誤。